如何从以下正则表达式的每组末尾排除字母字符:
\b([0-9]{1,2}\w)?([0-9]{1,2}\w)?([0-9]{1,2}\w)?([0-9]{1,2}\w)\b
谢谢!
答案 0 :(得分:4)
使用可选的非捕获组,并将捕获的组移动到其中:
\b(?:([0-9]{1,2})\w)?(?:([0-9]{1,2})\w)?(?:([0-9]{1,2})\w)?(?:([0-9]{1,2})\w)\b
\__________/ \__________/ \__________/ \__________/
1 2 3 4
(...)
- 群组将被捕获,就像现在一样。 (?:...)
- 非捕获组。用于对数字和字母数字进行分组,因此它们都是可选的:(?:...)?
请注意,\w
还包含数字和下划线,因此您可能会遇到意外结果。
答案 1 :(得分:1)
您可以排除这样的alpha:
[^a-zA-Z]
^
表示“不是”。