我正在使用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/