正则表达式以匹配字符串和一些字母

时间:2019-01-02 19:13:17

标签: regex

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

我要尝试做的事情是,输入具有[string]且[A-E]范围内存在1或2或4或4个以上的字母。** << / p>

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

我考虑过使用带有NOT运算符的正则表达式,其方式类似于:"string "(NOT OPERATOR)([A-E]{3}),这样,我会得到在每种情况下,“字符串”后跟其他3个字母的情况,但结果变成没有这样的运算符。

我该怎么解决这个问题?

在此先感谢您的回答!

2 个答案:

答案 0 :(得分:0)

您的regex差不多可以了,只需强制下一个字母不在您的组中,以防止出现ABC问题:

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

如果这是字符串的结尾,则还需要检查它:

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

答案 1 :(得分:0)

是的,字符串“ ABC”与[A-E]{1,2}匹配,因为您不坚持认为这些字母是指定字符串中仅 的东西(因此,“ AB”匹配且“ C ”只是因为其他一些原因而陷入其中。您应该坚持认为,完成正则表达式后,您已经到达了行/字符串的结尾:

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

或至少某种单词边界:

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