不识别空格的复杂正则表达式模式



我有一个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 ]*(零个或多个非空白或常规空格字符)。

最新更新