我有一個正則運算式,所以我想在數字不以它開頭時添加 1。如果它以 1 開頭,則應顯示為 1(###)-###-####
但是1 1-(###)-###-####
當數字以 1 開頭時它會拋出
表達:
var formattedShipperPhone = Regex.Replace(model.Shipper.ContactPhone, @"(?:\ 1[\- /]?)?([2-9]\d{2})[\- /]?([2-9]\d{2})[\- /]?(\d{4})", " 1-($1)-$2-$3");
如果 1 已經存在,我如何驗證它?
uj5u.com熱心網友回復:
這是因為您正在匹配 1
,如果沒有加號,您也不會匹配 1,因此它不會被觸及并留在替換中。
可以是可選的,您不必轉義\-
例子
var strings = new List<string>() {
" 1-288-388-4441",
" 1288-388-4442",
"1288-388-4443",
"288-388-4444",
};
foreach (var s in strings)
{
Console.WriteLine(
Regex.Replace(
s,
@"(?:\ ?1[- /]?)?([2-9]\d{2})[- /]?([2-9]\d{2})[- /]?(\d{4})",
" 1-($1)-$2-$3")
);
}
輸出
1-(288)-388-4441
1-(288)-388-4442
1-(288)-388-4443
1-(288)-388-4444
uj5u.com熱心網友回復:
我不喜歡.*
在正則運算式中使用,但在這個例子中你可以試試
".*([2-9]\d{2})[\- /]?([2-9]\d{2})[\- /]?(\d{4})"
并得到
" 1-($1)-$2-$3"
在這種情況下,您將始終洗掉 (###)-###-#### 之前的內容,然后添加 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/482042.html
上一篇:從選定物件獲取資料