非空字符串和 3 个字母字母的正则表达式

Regex for non empty string and 3 letter alphabetical

我正在尝试为一个非空的 3 字母字母字符串编写正则表达式。我尝试了以下

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

我知道 ?= 用作 and 运算符,(^$)|(\s+$) 检查非空和白色 space,但以下正则表达式不起作用。无法找出这有什么问题。任何帮助将不胜感激。

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

1."" - 应该会失败

2."LGW" - 应该通过

3."LGWE" - 应该失败

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

5."12L"-应该失败

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

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

表达式示例可用 here

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