我正在使用Javascript工作,并且具有以下正则表达式:

[img]([a-z0-9\-\./]+[^"\' ]*)[/img]/g


当我有以下文本时(两组之间用空格隔开):

[img]http://www.bla.com[/img] [img]http://www.bla.com[/img]


正则表达式成功找到了两个单独的组。

但是,当给出以下文本时(两组之间没有空格):

[img]http://www.bla.com[/img][img]http://www.bla.com[/img]


正则表达式不会将其分为2组,而是1个内部包含http://www.bla.com[/img][img]http://www.bla.com的大组。

当正则表达式之间没有空格时,如何使正则表达式找到最小的组,我缺少什么?

最佳答案

您可以使用此正则表达式:

/\[img]([-a-z0-9.\/]+[^"'\s]*?)\[\/img]/g


RegEx Demo


[/等需要在正则表达式中转义,以避免将其解释为字符类。
使用*?我们使用惰性量词在匹配[/img]之前尽可能少地进行匹配
如果我们将-放在字符类的开始或结尾,则不需要转义
点不需要在字符类中转义

关于javascript - 使正则表达式在bbcode中找到最小的组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52457263/

10-14 15:28
查看更多