c# Regex匹配括号内的任何内容

本文关键字:任何内 Regex | 更新日期: 2023-09-27 18:17:55

我想匹配括号内的任何内容,但结果也必须排除括号。

例子:
初始化(P90W)
制动器(45 x)

结果:


990 w
45 x

注意没有括号的结果。

我一直在努力使这个工作,但无济于事,我尝试了一些变化,但我知道这是一个简单的事情,我错过了,我不想去使用替换来实现它。

var item = "Brake(45X)"
Regex searchTerm = new Regex(@"'((.*)')");
var value = (searchTerm.Match(item).Groups.Count > 0) ?
    searchTerm.Match(item).Groups[0].Value : string.Empty;

c# Regex匹配括号内的任何内容

有人指责我一直使用零宽度断言:

resultString = Regex.Match(subjectString, @"(?<='().+?(?='))").Value;

但是他们做的正是你想要的。不要捕捉你不想捕捉的东西

try regex @"'((.*?)')"

编辑:结果也将是组1而不是0,组0应该包含整个正则表达式结果,而不是第一个括号值

删除内括号,再试一次:

new Regex(@"('([^')]+'))");

在正则表达式中不转义大括号时,如果使用组匹配,则只返回大括号内的内容。所以如果你有,new Regex(@'(a)(b))',匹配1将是a,匹配2将是b。匹配0是整个匹配。

Regex searchTerm = new Regex(@"'(([^')]*)')");

try this:

var pattern = @".*public.*(.*'(.*'))";
Regex.Matches(input,pattern)