我现在正在使用正则表达式公式中的正则表达式内部前瞻。特别是,给定字符串:
"hello" world
然后以下正则表达式似乎不起作用:
(?<=\"\w+\" )world
那么正则表达式如何能够用来捕捉“世界”呢?
你的例子中的正则表达式(qazxsw poi)是一个外观而不是前瞻。大多数语言,包括PHP,都不支持lookbehind中的非固定长度正则表达式。
相反,你可以编写像(?<=\"\w+\" )world
这样的正则表达式并提取第一个捕获组的值。虽然有这个例子,正则表达式似乎有点矫枉过正......
当我在正则表达式游乐场检查你的正则表达式时,它在'?<='中显示了一些错误。然后,我改变你的正则表达式
\"w+\" (world)
它与测试用例“hello”世界相匹配。
在“之前”需要使用'\'的第一个问题?
关于*和+:*的其他要求匹配0或更多,+要求匹配1或更多。因此,在单词可以被跳过之后使用*,而对于单词则不能。
测试你的正则表达式并理解公式意思:(\?*<*=*"*\w+"* )world