我正在尝试为当前正在开发的项目创建一些正则表达式。
我需要知道如何创建与以下模式的字符串匹配的正则表达式:
ABC单词单词
我想出了这个正则表达式:
(^ [A-Z] {3})(。* [A-Z] [a-z] {1,})
它可以与“ ABC创建用户”之类的字符串正常工作,但它也与“ ABCDE创建用户”,“ ABC CreAte用户”等匹配。
答案 0 :(得分:1)
请注意,.*
尽可能匹配除换行符以外的任何0个或多个字符,并且这种模式在验证字符串时很少有用。
您可以使用
^[A-Z]{3} (?!(?:MP|PM)\b)[A-Z][a-z]+ (?!(?:MP|PM)\b)[A-Z][a-z]+
或者,将非捕获组与有限量词一起使用:
^[A-Z]{3}(?: (?!(?:MP|PM)\b)[A-Z][a-z]+){2}
^^^ ^^^^
请参见regex demo #1和regex demo #2。
如果您需要匹配两个{strong>个或更多个此类Word
,请使用
^[A-Z]{3}(?: (?!(?:MP|PM)\b)[A-Z][a-z]+){2,}
^^^^
(?!(?:MP|PM)\b)[A-Z][a-z]+
部分执行以下操作:
(?!(?:MP|PM)\b)
否定前瞻检查单词是否等于MP
或PM
,如果模式匹配,则匹配失败[A-Z][a-z]+
使用大写字母,后跟1+小写字母。