首先让我道歉。我一直在和这个SO编辑器战斗一个小时。抱歉糟糕的格式。
如果我有一个匹配给定输入的正则表达式,那么我将该正则表达式放入正面的后置包装器中,它是否仍然匹配之前匹配的输入?
例如,此输入:
(NSString*)
将注册与此正则表达式匹配:
\(\w*\*\)
我已经在gskinner.com上证实了这一点。当我把那个正则表达式放到后面这样的包装器中时就像这样
(?<=\(\w*\*\))....
以此为输入:
(NSString*)help
我没有收到帮助这个词作为回报 这让我觉得我只是明白不了解后视概念。我看了一个关于这个概念的教程,但我不知道为什么这不起作用。如果我想匹配:
(NSString*)
并返回下一个字,我该怎么办呢?
答案 0 :(得分:1)
您有一个空格作为后面的外观的最后一个字符,但您的输入在“帮助”之前没有空格。此外,在输入文本之前没有冒号字符,但你的背后需要一个。
删除空格和冒号:
(?<=\(\w*\*\))\w+
请注意,许多正则表达式引擎不允许使用可变长度的外观,因此解决方法是将单词中的字符数限制为某个较大的数字,例如99
:
(?<=\(\w{1,99}\*\))\w+