如何在正则表达式中结合2个条件和更多条件

时间:2012-02-23 08:04:16

标签: javascript regex string match

我想创建一个匹配'。','#'和':'的正则​​表达式,并且还匹配这些括号中的所有内容'['& ']',例如[foo]& [巴]

我已经将此匹配string.match(/[.#:]/g)用于'。','#'和':'。

我知道括号正则表达式应该如下\[.\]

但是如何将它们组合成一个条件?

感谢, 阿龙

3 个答案:

答案 0 :(得分:5)

将它们组合使用

/[.#:]|(?:\[.+?\])/g

?:是可选的,用于不捕获组(括号中的任何内容)

更新:

.+?(一个或多个)或.*?(零或更多) - 使用此项进行延迟匹配,否则 [ sdfsdf] [sdfsddf ] < / strong>将匹配

答案 1 :(得分:2)

var s = "a . b # c : d [foo]";
var m = /[.:#]|\[.*?\]/g;
s.match(m);
// returns [".", "#", ":", "[foo]"]

答案 2 :(得分:0)

var data = '[content]kjalksdjfa.sdf[sc.tt].#:';
var myregexp = /(\[.+?\])|[.#:]/g;
var match = myregexp.exec(data);
var result = "Matches:\n";
while (match != null) {
    result +=  "match:"+match[0] + ',\n';
    match = myregexp.exec(data);
}
alert(result);