簡體   English   中英

正則表達式以匹配(x),(x)的格式

[英]Regex to match format of (x), (x)

有人可以幫我寫一個正則表達式,格式為(x), (x) ,其中x可以是任何一位數字。 我可以編寫匹配(x)的格式,如下所示:

Regex rgx = new Regex(@"^\(([^)]+\)$", RegexOptions.IgnoreCase)

如果您不需要捕獲非數字,那么對於數字,僅實際需要的模式是\\d

\\d每個匹配項都是解析器跨字符串工作時發現的單個數字。

例如:

var values = Regex.Matches("(1) (2)", @"\d")
                  .OfType<Match>()
                  .Select (mt => mt.ToString())
                  .ToArray();

Console.WriteLine ("Numbers found: {0}", string.Join(", ", values));
// Writes out->
// Numbers found: 1, 2

Eratta

您提供的示例具有RegexOptions.IgnoreCase 實際上,這確實會減慢模式匹配的速度,因為解析器必須先將任何字符轉換為大寫或小寫的中性字符, 然后再與目標匹配中的單詞進行比較。 考慮到文化,因此“ a”還與“À”,“Ô和“Ä”等相關,它們也必須進行處理。

由於使用數字選項處理數字是沒有意義的。

如果您不相信我,請查看Jeff Atwood(Stackoverflow的聯合創始人)對regex不區分大小寫的答案是否更慢?

您是否正在尋找這樣的東西?

\(([0-9])\),\s?\([0-9]\)

另外,在嘗試編寫Regexps時,我建議使用Regex101.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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