[英]C# regex match, match.Success returns false even after following the rules
朋友,我想匹配“ int lnum [];”這樣的字符串。 所以我試圖用這樣的模式來匹配它
[A-Za-z_0-9] [A-Za-z_0-9]\[\]
但它似乎不起作用。 我在http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet中查找了規則
string pJavaLine = "int lnum[]";
match = Regex.Match(pJavaLine, @"[A-Za-z_0-9] [A-Za-z_0-9]\[\] ", RegexOptions.IgnoreCase);
if (match.Success) {
// Finally, we get the Group value and display it.
string key = match.Groups[1].Value;
Console.WriteLine(key);
}
match.Success返回false。 有人請讓我知道一種可行的方法。
您的每個字符類,例如[A-Za-z_0-9]
,都只匹配一個字符。 如果要匹配多個字符,則需要在末尾添加一些內容。 例如, [A-Za-z_0-9]+
- +
表示其中的1個或多個。 您也可以使用*
表示0或更大,或指定范圍,例如{2,5}
表示2-5個字符。
也就是說,您可以使用以下模式來匹配該字符串:
[A-Za-z_0-9]+ [A-Za-z_0-9]+\[\]
\\w
大致等同於[A-Za-z_0-9]
(請參閱下面jessehouwing的注釋中的鏈接),因此您可以簡單地使用:
\w+ \w+\[\]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.