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

pha*_*har 0 regex regex-negation regex-greedy

我试图写一个3字母的字母字符串,不是空的正则表达式.我尝试了以下内容

(?=(^$)|(\s+$))(?=[A-Z]{3})
Run Code Online (Sandbox Code Playgroud)

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

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

1." - 应该失败

2."LGW" - 应该通过

3."LGWE" - 应该失败

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

5."12L" - 应该失败

npi*_*nti 7

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

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

此处提供了表达式的示例.

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