首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与-SDR的交替正则表达式?

与-SDR的交替正则表达式?
EN

Stack Overflow用户
提问于 2019-11-07 17:59:33
回答 1查看 48关注 0票数 1

我的c#中有以下正则表达式:

代码语言:javascript
复制
(?<!\w)M20A\w+

实际代码:

代码语言:javascript
复制
string regex = $@"(?<!\w){prefix}\w+";

注意前缀var匹配字符串,如M20A和X50G。

它完全符合以下情况:

代码语言:javascript
复制
M20A0820
M20A1234
M20A7U8V

但是现在我从业务上得到了一个新的要求,例如:

代码语言:javascript
复制
M20A-SDR

它将是前缀,后面是确切的字符串"-SDR“。不只是一个破折号后面有3个字母数字,而是字面上的"-SDR“。现有的匹配仍然需要工作,但前缀+ "-SDR“也必须匹配。

匹配以下内容的正则表达式是什么?

代码语言:javascript
复制
M20A0820
M20A1234
M20A7U8V
M20A-SDR
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-07 18:01:45

你可以用

代码语言:javascript
复制
string regex = $@"(?<!\w){prefix}\w*(?:-SDR)?";

regex演示

或者,为了匹配一个完整的单词,您可以使用单词边界:

代码语言:javascript
复制
string regex = $@"\b{prefix}\w*(?:-SDR)?\b";

请参阅这个regex演示

如果\b中的所有值都以单词char、字母、数字或_开头,那么起始处的prefix单词边界将工作。如果在-SDR之后没有更多的单词字符,那么末尾的单词边界将是有意义的。

(?:-SDR)?将与-SDR字符串进行光匹配。

详细信息

  • \b -字边界
  • M20A -一个文字字符串
  • \w* - 0+字词
  • (?:-SDR)? -一个非捕获组,它匹配1或0次(因为它后面有一个? )一个-SDR子字符串。
  • \b -一个词的边界。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58754580

复制
相关文章

相似问题

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