Javascript正则表达式匹配两个括号[[something]]
尝试匹配任何宽度和,包括两个括号,例如Javascript正则表达式匹配两个括号[[something]],javascript,regex,string-matching,Javascript,Regex,String Matching,尝试匹配任何宽度和,包括两个括号,例如[[match this]],这样我就可以不用括号替换 以下是我所拥有的var regex=/([\[\\\\;\]])\w+/g 但是,这与上述内容匹配,如下所示 如果您的([\[\\\\\]])\w+匹配一个符号-[,或](带([\[\\\\]]]),然后匹配一个或多个单词(字母数字或下划线字符)。请参阅 使用以下更换件: .replace(/\[\[(.*?)]]/g, "$1") 看 /\[\[(.*)]]/g将查找所有非重叠出现的[[,后跟除换行
[[match this]]
,这样我就可以不用括号替换
以下是我所拥有的var regex=/([\[\\\\;\]])\w+/g代码>
但是,这与上述内容匹配,如下所示
如果您的([\[\\\\\]])\w+
匹配一个符号-[
,
或]
(带([\[\\\\]]]
),然后匹配一个或多个单词(字母数字或下划线字符)。请参阅
使用以下更换件:
.replace(/\[\[(.*?)]]/g, "$1")
看
/\[\[(.*)]]/g
将查找所有非重叠出现的[[
,后跟除换行符以外的0+字符(如果还需要匹配换行符,请替换为[^]*?
或[\s\s]*?
),然后是两个文字符号]
(注意,在JS模式中,不需要在字符类之外转义它们)
*?
尽可能少地匹配除换行符以外的任何字符,以便引擎返回有效匹配,即它匹配到第一次出现的]
。如果匹配必须包括所有字符,直到最后一次出现的]
,*
就足够了
请注意,如果[[
/]
中的子字符串很长,我宁愿将整个正则表达式模式展开为/\[\[([^\]*(?:](?!])[^\]*)]/g
[\\\\\\]
表示任何字符[
,
或]
。您需要转义每个方括号。\w+
仍在任何括号之外,并且它不会与示例中的空格相匹配[[match this]]
。为什么*
和?
…不应该*
足够吗?我忘了添加:*?
匹配引擎返回有效匹配的新行以外的尽可能少的任何字符,即它匹配到第一次出现的]
。如果匹配必须包括最后一次出现的所有字符出现]
,*
就足够了。请注意,如果[[
/]]
中的子字符串很长,我宁愿将其展开为/\[([^\]*(?:](?!])[^\]*)]/g
。Gotchya…我知道你来自哪里了。