Open zwhu opened 8 years ago
一元运算符 * (克莱尼闭包)具有最高的优先级,并且是左结合的。 连接(即ab)具有次高的优先级,它也是左结合的。 | (运算符并)的优先级最低,并且也是左结合的。
例如:我们可以将 (a)|((b)*(c)) 改写成a|b*c。
(a)|((b)*(c))
a|b*c
上面是基础的正则约定,下面总结了一份常用正则表达式扩展中的优先级列表(顺序从高到低)。
虽然说这个表格作用不是很大,但是熟练掌握之后可以少写不少让人讨厌的小括号,也算是珍爱生命,珍爱眼睛吧。
今天一个同事给我一个正则表达式问我为什么判断不正确
/[\\S]{1,10}/
他是写 Java 的,写了一个判断字符串长度只能在 1-10 的正则表达式,在 java 中一切都运行良好,但是在 js 中却运行错误,我当时脑袋也是一懵,想了半天才想到怎么写出正确的正则,至于错误原因,我也就懒得总结了。
1-10
/^\S{1,10}$/
运算符优先级
例如:我们可以将
(a)|((b)*(c))
改写成a|b*c
。上面是基础的正则约定,下面总结了一份常用正则表达式扩展中的优先级列表(顺序从高到低)。
运算符代数定律
虽然说这个表格作用不是很大,但是熟练掌握之后可以少写不少让人讨厌的小括号,也算是珍爱生命,珍爱眼睛吧。