我想要一个能够找到正确的出现顺序的正则表达式
* | 。 | #| “任何HTML元素类型”(例如“ p”或“ div”)
喜欢
var regex = //Some regular expression;
var pattern_1 = "*p.class1#id1.class2";
pattern_1.match(regex); // Should print ['*','p','.','#','.']
var pattern_2 = "p.class1#id1.class2";
pattern_2.match(regex); //Should print ['p','.','#','.']
var pattern_3 = "p#id1.class1.class2";
pattern_3.match(regex); //Should print ['p','#','.','.']
var pattern_4 = "#id.class1.class2";
pattern_4.match(regex); //should print ['#id','.','.']
var pattern_5 = "*#id.class1.class2";
pattern_5.match(regex); //should print ['*','#','.','.']
我正在尝试
regex = /^\*?[a-zA-Z]*|\#|\./g
运气好,但是没有用 最佳答案
您最好将#
和.
以及它们各自的值进行匹配,然后再过滤结果:
var regex = /\*|([#.]\w+)|(\w+)/g
matches = pattern_1.match(regex).map(function(x) { return x.match(/^[#.]/) ? x.charAt(0) : x })
或先删除ID /类名,然后匹配:
matches = pattern_1.replace(/([#.])\w+/g, "$1").match(/[.#*]|\w+/g)
关于javascript - REGEX:查找字符串中某些给定特殊字符的正确出现顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18181848/