非空字符串和 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 个字母是可选的。
我正在尝试为一个非空的 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 个字母是可选的。