[英]C# Regex match anything inside Parentheses
我想匹配括號內的任何內容,但結果也必須排除括號。
例子:
初始化(P90W)
制動器(45X)
結果:
990W
45X
注意沒有圓括號的結果。
我一直在努力使這項工作,但無濟於事我嘗試了一些變化,但我知道這是一個簡單的事我錯過了,我不想使用替換來實現它。
var item = "Brake(45X)"
Regex searchTerm = new Regex(@"\((.*)\)");
var value = (searchTerm.Match(item).Groups.Count > 0) ?
searchTerm.Match(item).Groups[0].Value : string.Empty;
有些人指責我一直使用零寬度斷言:
resultString = Regex.Match(subjectString, @"(?<=\().+?(?=\))").Value;
但他們完全按照你的意願行事。 不捕捉你不想捕捉的東西。
試試regex @"\\((.*?)\\)"
編輯:結果將是組1而不是0,組0應該包含整個正則表達式結果,而不是第一個帶括號的值
刪除內部paranthesis並再試一次:
new Regex(@"(\([^\)]+\))");
當你沒有在正則表達式中轉義paranthesis時,如果你正在使用組匹配,它將只返回paranthesis中的內容。 所以如果你有new Regex(@'(a)(b))'
,匹配1將是a,匹配2將是b。 比賽0是整場比賽。
試試這個:
var pattern = @".*public.*(.*\(.*\))";
Regex.Matches(input,pattern)
Regex searchTerm = new Regex(@"\(([^\)]*)\)");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.