簡體   English   中英

正則表達式11位數字字符串捕獲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM