簡體   English   中英

C#正則表達式match,match。即使遵循規則,成功也會返回false

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

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