如何让“+”和“*”在正则表达式的前瞻中发挥作用

问题描述 投票:0回答:2

我现在正在使用正则表达式公式中的正则表达式内部前瞻。特别是,给定字符串:

"hello" world

然后以下正则表达式似乎不起作用:

(?<=\"\w+\" )world

那么正则表达式如何能够用来捕捉“世界”呢?

php regex lookahead
2个回答
1
投票

你的例子中的正则表达式(qazxsw poi)是一个外观而不是前瞻。大多数语言,包括PHP,都不支持lookbehind中的非固定长度正则表达式。

相反,你可以编写像(?<=\"\w+\" )world这样的正则表达式并提取第一个捕获组的值。虽然有这个例子,正则表达式似乎有点矫枉过正......


1
投票

当我在正则表达式游乐场检查你的正则表达式时,它在'?<='中显示了一些错误。然后,我改变你的正则表达式

\"w+\" (world)

它与测试用例“hello”世界相匹配。

在“之前”需要使用'\'的第一个问题?

关于*和+:*的其他要求匹配0或更多,+要求匹配1或更多。因此,在单词可以被跳过之后使用*,而对于单词则不能。

测试你的正则表达式并理解公式意思:(\?*<*=*"*\w+"* )world

© www.soinside.com 2019 - 2024. All rights reserved.