簡體   English   中英

C#正則表達式匹配括號內的任何內容

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

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