Regex 正则表达式模式强制与条件匹配,而不是与其他条件匹配
我试图强制满足以下条件:Regex 正则表达式模式强制与条件匹配,而不是与其他条件匹配,regex,string,match,regex-negation,Regex,String,Match,Regex Negation,我试图强制满足以下条件: 如果以1,2,3个数字+1个空格+1个字母结尾 如果模式在字符串中间匹配,忽略它。 投入: ME001000 RV2 B尝试以下方法: \d{1,3} [A-Za-z]$ \d=任意数字 {1,3}=重复匹配1到3次 =文本空间 [A-Za-z]=任何大写或小写字母 $=断言字符串结尾 您要使用的正则表达式是: \d{1,3} [A-Z]$ \d{1,3}从1到3位匹配 匹配单个空格 [A-Z]匹配大写字母 $匹配字符串的结尾 您最需要的是$锚定,以确保您要
- 如果以1,2,3个数字+1个空格+1个字母结尾
\d{1,3} [A-Za-z]$
=任意数字\d
=重复匹配1到3次{1,3}
=文本空间
=任何大写或小写字母[A-Za-z]
=断言字符串结尾$
\d{1,3} [A-Z]$
\d{1,3}
从1到3位匹配
匹配单个空格[A-Z]
匹配大写字母$
匹配字符串的结尾$
锚定,以确保您要查找的内容位于字符串的末尾
regex演示使用的是JavaScript规范(您没有指定您使用的语言),并使用标志g
和m
。g
标志用于查找多个匹配项,m
标志用于$
锚定匹配行尾和字符串尾
正如GoRLLN指出的,你可能需要考虑一个小小的修改:
\b\d{1,3} [A-Z]$
上述方法确保您尝试匹配的模式的第一个数字从单词边界开始(即,它前面有一个非单词字符或字符串的开头)。请记住,这将匹配
234 a
中的foobar234 a
。如果你们两个加上(我认为必要的)单词边界意味着所有贴出的答案都是一样的。。。¯\_(ツ)_/“@ggorlen这是一个公平的观点,但从问题来看,这是否是一个问题并不完全清楚,但示例表明它可能是(或者该模式可能需要在前面加一个空格)。我在回答中添加了一个附录。