【发布时间】:2012-03-13 15:06:20
【问题描述】:
我想创建一个匹配 '.'、'#' 和 ':' 的正则表达式 并且还匹配这些括号 '[' & ']' 内的所有内容,例如 [foo] & [酒吧]
我已经为 '.'、'#' 和 ':' 匹配了 string.match(/[.#:]/g)。
我知道括号正则表达式应该是这样的\[.\]
但是如何将它们结合到一个条件中呢?
谢谢, 阿隆
【问题讨论】:
标签: javascript regex string match
我想创建一个匹配 '.'、'#' 和 ':' 的正则表达式 并且还匹配这些括号 '[' & ']' 内的所有内容,例如 [foo] & [酒吧]
我已经为 '.'、'#' 和 ':' 匹配了 string.match(/[.#:]/g)。
我知道括号正则表达式应该是这样的\[.\]
但是如何将它们结合到一个条件中呢?
谢谢, 阿隆
【问题讨论】:
标签: javascript regex string match
将它们结合起来使用
/[.#:]|(?:\[.+?\])/g
?: 是可选的,用于不捕获组(括号中的任何内容)
更新:
.+?(一个或多个)或.*?(零个或多个)- 使用它进行惰性匹配,否则 [ sdfsdf][sdfsddf ] 将被匹配
【讨论】:
var s = "a . b # c : d [foo]";
var m = /[.:#]|\[.*?\]/g;
s.match(m);
// returns [".", "#", ":", "[foo]"]
【讨论】:
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);
【讨论】: