我正在尝试使用正则表达式匹配函数将以下字符串拆分为子字符串。但它并没有分裂最后一个元素。谁能指出我正在做的错误?
"<=lastdate+30d".match(/(>=|<=|==|<|>|\!=)|\w+|[-+]|\d|[dhms]/g)
result is ["<=", "lastdate", "+", "30d"]
expected result is ["<=", "lastdate", "+", "30", "d"]
答案 0 :(得分:2)
正则表达式的问题在于\w
与[a-zA-Z0-9_]
匹配。因此,最后30d
与\w+
匹配。
使用以下正则表达式:
/(>=|<=|==|<|>|\!=)|[a-z]+|[-+]|\d+|[dhms]/
console.log("<=lastdate+30d".match(/(>=|<=|==|<|>|\!=)|[a-z]+|[-+]|\d+|[dhms]/gi));
&#13;
答案 1 :(得分:0)
"<=lastdate+30d".match(/>=|<=|==|<|>|\!=|\d+|\w+|[-+]|[dhms]/g)
它正在考虑30d一个单词字符,如果你首先搜索数字,它就会将它分开。