更新我的正则表达式以包含点和连字符
Updating my regex to include dots and hyphens
我的正则表达式代码 [A-Z]{1,}\d{3,}\w?
工作正常 returning 像 CX3623、M3326、Y2362 这样的字符串,但我也希望能够 return 以下格式的字符串:
YH321-2
V2021/V2022
1.2A-2351
YGH256-4268
我应该在正则表达式中添加什么?
对于第一部分,您可以使用 alternation.
匹配不同的格式
您可以使用可选的非捕获组 (?:...)?
使第二部分成为可选的,并匹配 /
或 -
可选地后跟字符 A-Z 和 1+ 个数字。
\b(?:[A-Z]+ )?(?:[A-Z]*\d{3,}|\d+(?:\.\d+)?[A-Z]+)(?:[\/-][A-Z]*\d+)?\b
说明
\b
字边界
(?:[A-Z]+ )?
可选择匹配 1+ 个字符 A-Z 后跟 space
(?:
非捕获组
[A-Z]*\d{3,}
匹配 0+ 次 A-Z 和 3 个或更多数字
|
或
\d+(?:\.\d+)?[A-Z]+
匹配 1+ 个带可选小数部分的数字和 1+ 次 A-Z
)
关闭群组
(?:
非捕获组
[\/-][A-Z]*\d+
匹配 /
或 -
,0+ 次 A-Z 和 1+ 位数字
)?
关闭群组并设为可选
\b
字边界
我的正则表达式代码 [A-Z]{1,}\d{3,}\w?
工作正常 returning 像 CX3623、M3326、Y2362 这样的字符串,但我也希望能够 return 以下格式的字符串:
YH321-2
V2021/V2022
1.2A-2351
YGH256-4268
我应该在正则表达式中添加什么?
对于第一部分,您可以使用 alternation.
匹配不同的格式您可以使用可选的非捕获组 (?:...)?
使第二部分成为可选的,并匹配 /
或 -
可选地后跟字符 A-Z 和 1+ 个数字。
\b(?:[A-Z]+ )?(?:[A-Z]*\d{3,}|\d+(?:\.\d+)?[A-Z]+)(?:[\/-][A-Z]*\d+)?\b
说明
\b
字边界(?:[A-Z]+ )?
可选择匹配 1+ 个字符 A-Z 后跟 space(?:
非捕获组[A-Z]*\d{3,}
匹配 0+ 次 A-Z 和 3 个或更多数字|
或\d+(?:\.\d+)?[A-Z]+
匹配 1+ 个带可选小数部分的数字和 1+ 次 A-Z
)
关闭群组(?:
非捕获组[\/-][A-Z]*\d+
匹配/
或-
,0+ 次 A-Z 和 1+ 位数字
)?
关闭群组并设为可选\b
字边界