首页 > 解决方案 > 匹配字符串和一些字母的正则表达式

问题描述

我正在尝试为 Flex 程序找到一个正则表达式,该表达式将匹配一个“字符串”和该范围内存在的一系列字母[A-E]

我试图做的是获取输入具有“字符串”以及范围 [AE] 中存在 1 个或 2 个或 4 个或超过 4 个字母的情况。**<

到目前为止,我尝试的是正则表达式:"string "([A-E]{1,2}|[A-E]{4,}) 字母在 {4,} 范围内的情况显然有效,但情况 {1,2} 则不起作用,因为如果用户输入“字符串”ABC 它将调用案例 [AE]{1,2}。

我考虑过使用带有 NOT 运算符的正则表达式,类似于 :"string "(NOT OPERATOR)([A-E]{3})这样我就会得到每个“字符串”后面跟 3 个字母的其他任何内容的情况,但事实证明没有这样的运算符。

我能做些什么来解决这个问题?

提前感谢您提供的任何答案!

标签: regex

解决方案


是的,字符串“ABC”匹配[A-E]{1,2},因为您不坚持这些字母是指定字符串中的唯一内容(因此,“AB”匹配,而“C”只是因为某些其他原因而混入其中)。你应该坚持当正则表达式完成时,你已经到达了行/字符串的末尾:

^string ([A-E]{1,2}|[A-E]{4})$

或至少某种单词边界:

string ([A-E]{1,2}|[A-E]{4})\b

推荐阅读