非空字符串的正则表达式和按字母顺序排列的3个字母

时间:2015-08-24 09:19:13

标签: regex regex-negation regex-greedy

我正在尝试将正则表达式写成3个字母的字母字符串,该字符串不为空。我试过以下

(?=(^$)|(\s+$))(?=[A-Z]{3})

我知道?=作为和操作符,(^$)|(\s+$)检查非空和空格,但以下正则表达式不起作用。无法找出这方面的错误。任何帮助将不胜感激。

我的正则表达式应首先检查字符串是否为空,如果字符串不为空,则应检查是否按字母顺序排列,长度为3以下是示例

1"" - 应该失败

2" LGW" - 应该通过

3" LGWE" - 应该失败

4." LG!@" - 应该失败

5。" 12L" - 应该失败

1 个答案:

答案 0 :(得分:7)

在你的情况下,^[A-Z]{3}$应该做你想做的事。

它将确保整个字符串由3个大写字母组成。如果您还想匹配小写字母,请使用:^[A-Za-z]{3}$

表达式的示例可用here

编辑:根据你的评论,你的问题似乎是反对你的一个测试用例,如果你想接受空字符串那么你需要将^[a-z]{3}$更改为^([a-z]{3})?$。这意味着3个字母是可选的。