0

我的起始字符串是

alpha < beta < gamma < delta < epsi

我想捕获单个令牌 alpha、beta、...

在一个这样的表达式中,也可能有运算符被引用为 'lt'、'gt' 并且到目前为止我已经应用了这个正则表达式。

/[^(\<\=?|\>\=?|==\ )|^(eq|lt|gt)]/g

此表达式不会将 'eq'、'lt'、'gt' 检测为有界词,而只是将 'e'、'q'、'l'、't'、'g' 检测到。我错过了什么?

4

1 回答 1

3

只需在您提到的边界上进行拆分,并注意仅将字符类用于单独排列每个字符。如果要对字符组应用 OR,则必须使用捕获组(....)或非捕获组(?:...)

var s = 'alpha < beta < gamma < delta < epsi'
alert(s.split(/\s*(?:\b(?:eq|lt|gt)\b|[<>]=?|==)\s*/))

于 2015-10-26T11:48:32.360 回答