[英]c# Regular Expression no match - when there should be
我正在嘗試將0個或多個字母,數字和引號(“)之間的空格匹配,這些集合可以用空格隔開,也可以不使用空格,並且字符串將以關鍵字開頭以標識要做什么與匹配的集合。
最簡單的示例如下:
\\ inString = test "1" "a""3";
Regex regEx = new Regex("@(\"[0-9 a-z]*\")", RegexOptions.IgnoreCase);
Match match = regEx.Match(inStr);
比賽未成功,更何況包含3個預期結果
但是,通過http://regexhero.net進行的匹配是成功的-我使用regexhero作為其SilverLight的基礎,因此正在使用.NET Regex引擎...
正則表達式設置:
正則表達式
(\"[0-9 a-z]*\")
目標字符串
test "1" "b""3"
結果
1: "1"
1: "b"
1: "3"
誰能解釋我的實現有什么問題?
我希望您的正則表達式是:
Regex regEx = new Regex("(\"[0-9 a-z]*\")", RegexOptions.IgnoreCase);
或(完全相同)
Regex regEx = new Regex(@"(""[0-9 a-z]*"")", RegexOptions.IgnoreCase);
看來這個問題可能對您有幫助:
您必須更改正則表達式模式:
"@(\"[0-9 a-z]*\")"
至
@"(""[0-9 a-z]*"")"
你還需要改變
Match match = regEx.Match(inStr);
至
MatchCollection match = regEx.Matches(intstr);
因為Matches
在輸入字符串中搜索所有出現的正則表達式並返回所有匹配項,但Match
在指定的輸入字符串中搜索正則表達式的第一次出現
如果您想要這樣的結果:
1: "1"
1: "b"
1: "3"
您需要更改為Matches
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.