我有一个用于识别牙齿的正则表达式,正则表达式如下:
/((U|L)(R|L)[0-8a-eA-E](\s|\/|-|_)?((M|O|D|I|B|P|L)+)?)/gi
它应该(并且确实)匹配以下内容:
UR7
UR7 MOD
UR5-MOD
问题是,最后一部分(在UR和数字之后)是可选的,因此可能是它们没有被输入,这很好但是遗憾的是可选空间仍然匹配,例如:
UR7
(请注意UR7之后的空格)也与空间相匹配..
我可以看到两种解决方法:
有人可以帮助我实现这个目标吗?
所以上述匹配所需的行为是匹配的,但对于带有空格的UR7,只匹配UR7而不是空格!
非常感谢你!
答案 0 :(得分:0)
只有当分隔符后跟更多内容时才标记分隔符。
我还重构了为单个字符使用字符类,因为这通常更有效。
/[UL][RL][0-8a-eA-E]((\s|[-\/_])?[MODIBPL]+)?/gi