正在更新我的regex以包含句点和连字符



我的正则表达式代码[A-Z]{1,}d{3,}w?可以很好地返回CX3623、M3326、Y2362等字符串,但我也希望能够返回以下格式的字符串:

YH321-2
V2021/V2022
1.2A-2351
YGH256-4268

我应该向正则表达式添加什么?

演示:https://regex101.com/r/MjPkFh/2

对于第一部分,您可以使用替换来匹配不同的格式。

您可以使用可选的非捕获组(?:...)?使第二部分可选,并匹配/-(可选(,后面跟着字符A-Z和1+数字。

b(?:[A-Z]+ )?(?:[A-Z]*d{3,}|d+(?:.d+)?[A-Z]+)(?:[/-][A-Z]*d+)?b

解释

  • b字边界
  • (?:[A-Z]+ )?(可选(匹配1个字符A-Z,后跟一个空格
  • (?:非捕获组
    • [A-Z]*d{3,}匹配0次以上A-Z和3位或3位以上数字
    • |
    • d+(?:.d+)?[A-Z]+将1个以上数字与可选小数部分和1个以上A-Z倍进行匹配
  • )关闭组
  • (?:非捕获组
    • [/-][A-Z]*d+匹配/-,0次以上A-Z和1次以上数字
  • )?关闭组并使其成为可选
  • b字边界

Regex演示

最新更新