【问题标题】:Match resulting String using regex使用正则表达式匹配结果字符串
【发布时间】:2012-11-29 23:22:39
【问题描述】:

我有一个字符串00408-B193AQ-P-DW-11045,它是管道的标签。使用正则表达式我只想匹配B193AQ-DW-11045。使用全局选项我能够使用正则表达式[A-Z][0-9a-zA-Z][^P]+ 获得所需。但是我们的系统支持忽略大小写(不是全局的)。所以忽略大小写需要一个正则表达式来给出所需的结果。

【问题讨论】:

  • 您是用哪种编程语言或环境编写的?
  • “我们的系统支持忽略大小写(不是全局的)”这部分不清楚。输入可以是大写还是小写?你为什么关心不区分大小写是否是全局的?无论如何,此特定功能高度依赖于您使用的编程语言和/或正则表达式库。没有这些信息就无法回答您的问题。
  • 我很确定正则表达式不会像您认为的那样做。您能否澄清一下究竟匹配/不匹配的规则是什么?

标签: .net regex


【解决方案1】:

如果您以编程方式进行检查,您可能会闯入命名组:

(?'index'[\d]{5})-(?'index1'[0-9a-zA-Z]{6})-(?'index3'[A-Z])-(?'index4'[A-Z]{2})-(?'index5'[0-9]{5})

返回:

index: 00408
index1: B193AQ
index3: P
index4: DW
index5: 11045

如果只是检查某些部分是否匹配,请尝试使用此模式:

.{5}-([0-9a-zA-Z]{6})-.-([A-Z]{2})-([0-9]{5})

这里是“。” (dot) 表示任何字符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2012-06-05
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多