[英]Regex 11 digit string capturing
String pattern = @"^(\d{11})$";
String input = "You number is:11126564312 and 12234322121 \n\n23211212345";
Match match = Regex.Match(input,pattern);
我打算從上面的代碼中捕獲上面文本中出現但匹配的11位數字字符串。成功總是返回false。 有任何想法嗎。
這是因為您使用了^
和$
。
說明:正則表達式的含義是“ 匹配從頭到尾完全包含11位數字的任何字符串 ”。 You number is:11126564312 and 12234322121 \\n\\n23211212345
的字符串You number is:11126564312 and 12234322121 \\n\\n23211212345
不是這樣的字符串。 01234567890
就像那個字符串。
您需要什么:您需要使用正則表達式來匹配包含11位數字的任何字符串 。 開始到結束被省略。 ^
和$
用於此目的。 因此,您需要此正則表達式。
String pattern = @"(\d{11})";
由於要捕獲的子模式包含整個正則表達式,因此您根本不需要()
。 正則表達式不適。
String pattern = @"\d{11}";
String pattern = @"^(\d{11})$";
String input = "11126564312"
Match match = Regex.Match(input,pattern);
將通過。
您的正則表達式指定它只能是11個數字
^
=開頭
$
=以結尾
如果要檢查是否包含 11個數字,請將正則表達式更改為
String pattern = @"\d{11}";
您的Regex匹配的字符串正好是11位數字,但之前,之間或之后沒有文本。 這就是為什么您在這里沒有找到任何匹配的原因。
要匹配字符串中任意位置的11位數字,只需使用:
string pattern = @"\d{11}";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.