【发布时间】:2019-11-18 05:56:22
【问题描述】:
我想创建一个匹配具有特定长度的所有单词的正则表达式。
我拥有的字符串示例:
"I ABCDE FGH IG KLMNOPQ RS T"
我想匹配长度小于 3 个字母的所有单词(在本例中为 I、IG、RS 和 T)。
以下是我制作的替代方案:
Alt1:
Regex: ( |^)([A-Z]{1,2})( |$):Link1
解释: 匹配长度为 2 或 1 个大写字母且前面有空格或字符串开头 (( |^)) 后跟空格或字符串结尾 (( |$)) 的任何单词。
问题是我得到了我不想要的空格的正匹配。我不匹配 T。
Alt2:
Regex: \w{1,2}\b:Link2
解释:
匹配一个最多包含 2 个字符的单词,只要它是字符串的唯一内容
(我在这个answer找到它)
问题是我得到了每个单词(DE、GH 和 PQ)的最后两个字母的匹配项,这在我的情况下是错误的。
【问题讨论】:
-
你的意思是
(?<!\S)[A-Z]{1,2}(?!\S)? regex101.com/r/ykA3r0/1 -
这完全符合我的要求。请您发布一个带有一些解释的答案。谢谢!