首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果是字符串的最后一个字符或下一个组不匹配,则不匹配空白?

如果是字符串的最后一个字符或下一个组不匹配,则不匹配空白?
EN

Stack Overflow用户
提问于 2015-12-13 14:01:25
回答 1查看 52关注 0票数 0

我有一个Regex,用于识别牙齿,它如下所示:

代码语言:javascript
运行
复制
/((U|L)(R|L)[0-8a-eA-E](\s|\/|-|_)?((M|O|D|I|B|P|L)+)?)/gi

它应该(并且确实)匹配以下内容:

UR7

UR7模块

UR5-国防部

问题是,最后一部分( UR和数字之后)是可选的,因此可能没有输入它们,这很好,但不幸的是,可选空间仍然匹配,例如:

代码语言:javascript
运行
复制
UR7 

(请注意UR7后的空间)匹配空间。

我想出两种方法来解决这个问题:

  1. 只有当下一组匹配时,才匹配这个组(\s_s_/__/_?)?或
  2. 如果组是匹配的最后一个字符,则不匹配该组(\s_/_)。

有人能帮我做到这一点吗?

因此,所希望的行为是所有上述匹配都匹配,但是对于一个具有空格的UR7,只匹配UR7,而不匹配空间!

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 14:49:22

标记分隔符为容忍,只有当它后面有更多的东西。

我还对单个字符使用字符类进行了重构,因为这通常更有效。

代码语言:javascript
运行
复制
/[UL][RL][0-8a-eA-E]((\s|[-\/_])?[MODIBPL]+)?/gi
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34251922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档