1

让我先道歉。我已经和这个 SO 编辑器抗争了一个小时。对不起,糟糕的格式。

如果我有一个匹配给定输入的正则表达式,那么我将该正则表达式放入正面的后视包装器中,它是否仍与之前匹配的输入匹配?

例如,这个输入:

(NSString*)

将使用此正则表达式注册匹配:

\(\w*\*\)

我已经在 gskinner.com 上确认了这一点。当我像这样将该正则表达式放入后视包装器时

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

以此为输入:

(NSString*)help  

我没有收到帮助这个词作为回报。
这使我认为我只是不明白后视概念。我看了一个关于这个概念的教程,但我不知道为什么这不起作用。如果我想匹配:

(NSString*)

并返回下一个单词,我该怎么做?

4

1 回答 1

1

你有一个空格作为后面的最后一个字符,但你的输入在“帮助”之前没有空格。此外,输入文本之前没有冒号字符,但您后面的查找需要一个。

删除空格和冒号:

(?<=\(\w*\*\))\w+

请注意,许多正则表达式引擎不允许变长查找,因此解决方法是将单词中的字符数限制为某个较大的数字,例如99

 (?<=\(\w{1,99}\*\))\w+
于 2013-05-31T03:00:23.700 回答