我正在尝试将正则表达式写成3个字母的字母字符串,该字符串不为空。我试过以下
(?=(^$)|(\s+$))(?=[A-Z]{3})
我知道?=作为和操作符,(^$)|(\s+$)
检查非空和空格,但以下正则表达式不起作用。无法找出这方面的错误。任何帮助将不胜感激。
我的正则表达式应首先检查字符串是否为空,如果字符串不为空,则应检查是否按字母顺序排列,长度为3以下是示例
1"" - 应该失败
2" LGW" - 应该通过
3" LGWE" - 应该失败
4." LG!@" - 应该失败
5。" 12L" - 应该失败
答案 0 :(得分:7)
在你的情况下,^[A-Z]{3}$
应该做你想做的事。
它将确保整个字符串由3个大写字母组成。如果您还想匹配小写字母,请使用:^[A-Za-z]{3}$
。
表达式的示例可用here。
编辑:根据你的评论,你的问题似乎是反对你的一个测试用例,如果你想也接受空字符串那么你需要将^[a-z]{3}$
更改为^([a-z]{3})?$
。这意味着3个字母是可选的。