0

我想检索括号之间的文本。这里有很多例子,但没有一个给出准确的结果。

例如,在这一行中:

Hello how are (you) doing ?

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

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

请让我知道如何处理这个问题。

4

2 回答 2

1

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

如果这是不可能的,如果您不知道如何(尽管也许您想弄清楚),或者作为替代方案,您可以使用环视:(虽然可能不太普遍支持)

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

(?<=...)是look-behind,它查看前面的字符。
(?=...)是前瞻,它着眼于下一个字符。

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

于 2013-04-26T08:33:25.630 回答
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]);
于 2013-04-26T09:06:13.740 回答