[英]How to make “+” and “*” work inside lookahead of regex
我现在正则表达式内的正则表达式内部出现问题。 特别地,给定字符串:
"hello" world
那么以下正则表达式似乎不起作用:
(?<=\"\w+\" )world
那么我可以用正则表达式公式来捕捉“世界”吗?
当我在正则表达式操场上检查您的正则表达式时,它在“?<=”中显示了一些错误。 然后,我将您的正则表达式更改为
(\\?*<*=*"*\\w+"* )world
它与测试用例“ hello”世界匹配。
您需要在“?”之前使用“ \\”的第一个问题
关于*和+的其他字符:*要求匹配0或更大,+要求匹配1或更大。 因此,在可以跳过单词之后使用*,对于单词不能使用+。
测试您的正则表达式并了解公式的含义: https : //regexr.com/
您的示例( (?<=\\"\\w+\\" )world
)中的正则表达式是先入为主,而不是先行。 大多数语言(包括PHP)在后面都不支持非固定长度的正则表达式。
相反,您可以编写一个正则表达式,例如\\"w+\\" (world)
然后提取第一个捕获组的值。 尽管以这个例子为例,正则表达式似乎有点过分……
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.