我有一个regex模式,它在大约50%的情况下捕获了我想要的,我发现它不匹配的情况与字符串中的空格有关。这是javascript的Regex。
REGEX PATTERN:
/[url="https?://([a-z0-9-]+.)*cnn.com/newsreel/showreel.php?id=?([^s]*[^.])?"]([^s]*[^.])[/url]/gi
字符串匹配
A) [url="http://www.cnn.com/newsreel/showreel.php?id=977976"]Test123[/url]
B) [url="http://www.cnn.com/newsreel/showreel.php?id=977976"]Test 1 2 3[/url]
现在如果我试着在A上运行这个模式,它可以工作-好的。但是在B上,由于所有的空格,它失败了。
我认为这与我的第三个匹配组([^s]*[^.])
有关,我猜这不是捕捉空间。有人知道怎么让它匹配空格吗?
谢谢!
从
更改第三个匹配组([^s]*[^.])
(.*[^.])
。,您将[^s]*
(零个或多个非空白字符)替换为.*
(零个或多个字符)。
注意,这也将允许其他空白字符,如制表符和可能的换行符,这取决于如何使用regex。如果这太宽松,您可以选择[S ]*
(零个或多个非空白或常规空格字符)。