Comment combiner 2 conditions et plus dans regex

je veux créer un regex qui correspond.', '#' et ':' et de correspondre tout à l'intérieur de ces parenthèses '[' & ']' comme [foo] & [bar]

j'ai déjà ce match string.match(/[.#:]/g) pour".','#' et.':'

je sais que les parenthèses regex devrait ressembler à ce [.]

mais comment puis-je les combiner à une seule condition?

merci, Alon

0
demandé sur Alon 2012-02-23 12:04:16

3 réponses

pour les combiner utilisez

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

?: est facultatif et est utilisé pour capturer pas le groupe (tout ce qui est entre parenthèses)

mise à jour:

.+? (un ou plusieurs) ou .*? (pour zéro ou plus) - utilisez-le pour l'appariement paresseux, sinon [ sdfsdf] [sdfsdf ] sera apparié

5
répondu kingpin 2012-02-23 08:29:11
var s = "a . b # c : d [foo]";
var m = /[.:#]|\[.*?\]/g;
s.match(m);
// returns [".", "#", ":", "[foo]"]
2
répondu Salman A 2012-02-23 08:12:54
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);
0
répondu sweaver2112 2012-02-23 08:23:44