正则表达式检索文本在圆括号内

时间:2013-04-26 08:26:56

标签: regex

我想在括号中检索文字。这里有很多例子,但没有一个能给出准确的结果。

例如,在这一行:

Hello how are (you) doing ?

我想只检索括号内的“你”。

我正在使用以下正则表达式:/\((.*?)\)/但是这给了我(you)

请告诉我如何处理。

2 个答案:

答案 0 :(得分:1)

在大多数语言中,您应该能够提取您正在寻找的内容,在这种情况下,这将是第一个“组”(即括号中的第一个内容)。如何做到这一点在很大程度上取决于语言,但通常是可能的。

如果这是不可能的,如果你不知道如何(虽然你想弄明白),或者作为替代方案,你可以能够使用环顾:虽然可能不太常见,但

/(?<=\()(.*?)(?=\))/

(?<=...)是后视,它会查看以前的字符 (?=...)是前瞻性的,它会查看下一个字符。

文本匹配后视和前瞻不包含在实际匹配中。

答案 1 :(得分:1)

这就是我用JavaScript和Ruby解决这个问题的方法:

# Ruby
text = "Hello how are (you) doing?"
pattern = /\(([^\(\)]+)\)/
puts text.match(pattern)[1]


// JavaScript
var text = "Hello how are (you) doing?";
var pattern = /\(([^\(\)]+)\)/;
console.log(text.match(pattern)[1]);