正则表达式正面看后面

时间:2013-05-31 02:32:33

标签: objective-c regex regex-lookarounds

首先让我道歉。我一直在和这个SO编辑器战斗一个小时。抱歉糟糕的格式。

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

例如,此输入:

(NSString*)

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

\(\w*\*\)

我已经在gskinner.com上证实了这一点。当我把那个正则表达式放到后面这样的包装器中时就像这样

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

以此为输入:

(NSString*)help  

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

(NSString*)

并返回下一个字,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

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

删除空格和冒号:

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

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

 (?<=\(\w{1,99}\*\))\w+