Javascript 正则表达式开始和结束匹配

Javascript 正则表达式开始和结束匹配,javascript,regex,Javascript,Regex,所以我有点正则表达式的问题,我有一个表达式,分别匹配开头和结尾。当我试图在同一个表达式中匹配开头和结尾时,就会出现问题,我不明白为什么会出现问题。我甚至试着解释开始标签和结束标签之间的内容,但仍然没有成功 Works: /^([ ])?\[(\/?)gaiarch(=[^"]*)?]([ ])?/ig Works: /([ ])?\[(\/?)gaiarch(=[^"]*)?]([ ])?$/ig Doesn't work: /^([ ])?\[(\/?)gaiarch(=[^"]*)?]([

所以我有点正则表达式的问题,我有一个表达式,分别匹配开头和结尾。当我试图在同一个表达式中匹配开头和结尾时,就会出现问题,我不明白为什么会出现问题。我甚至试着解释开始标签和结束标签之间的内容,但仍然没有成功

Works: /^([ ])?\[(\/?)gaiarch(=[^"]*)?]([ ])?/ig
Works: /([ ])?\[(\/?)gaiarch(=[^"]*)?]([ ])?$/ig
Doesn't work: /^([ ])?\[(\/?)gaiarch(=[^"]*)?]([ ])?$/ig
我想让它匹配的是:

[gaiarch=slider]
[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/trade_c.png" text="Trading Image" goto="http://www.gaiaonline.com/gaia/bank.php?mode=trade&uid=15388423"],[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/friend_c.png" text="Friends Image" goto="http://www.gaiaonline.com/friends/add/15388423"][/gaiarch]

 [gaiarch=slider][img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/gaiaonline/thread/post/dark-center_bottom_zps419960f4.gif" text="bottom bar"]
[img url="http://i1251.photobucket.com/albums/hh543/Knight-Yoshi/gaiaonline/thread/post/star-say_right_zpsdc3769f3.png" goto="http://www.gaiaonline.com/"][/gaiarch] 

问题是你没有匹配开始标签和结束标签之间的内容;表达式要求字符串的唯一内容是开始标记或结束标记

要匹配开始标记和结束标记之间的任何内容,您需要以下内容:

/\[gaiarch(?:=([^\]]+))?\](.*?)\[\/gaiarch\]/ig
要使此表达式起作用,可以使用:


您正在尝试匹配
[gaiarch=…]
[/gaiarch]
之间的字符串?如果您想同时获得这两个字符串,可以使用。它使用
|
(或)运算符。因此,它在开头匹配
[gaiarch=…]
,在结尾匹配
[/gaiarch]
。这就是你想要的吗?请插入你想要达到的结果。
var re = /\[gaiarch(?:=([^\]]+))?\](.*?)\[\/gaiarch\]/ig;
while ((match = re.exec(str)) !== null) {
    console.log(match[1]) // "slider"
    console.log(match[2]) // "[img url=...]"
}