我正在使用 java 中的文本处理 Api。我需要匹配以下字符串:
- 长度至少为 8 个字符。
- 只能包含大写字母、小写字母或空格。
- 字母之间不应出现空格。然而,它们可以领先或落后。字符串也可以只包含至少 8 个空格。
我尝试但失败的正则表达式:
^\s*[a-zA-Z]{8,}\s*$
我在这里尝试的演示。
欢迎任何帮助。
您可以使用以下正则表达式来实现您的结果:
^(?=.{8,}) *[a-zA-Z]* *$
上述正则表达式的解释:
^
- 表示测试字符串的开始。(?=)
- 积极的前瞻。.{8,}
- 除换行符以外的任何长度至少为 8 的字符。*
- 0个或多个空格以匹配前导空格。(\s
避免)[a-zA-Z]*
- 0 个或多个字母(大写或小写)。(您可以[a-z]*
与i
(不区分大小写)标志一起使用。虽然,不会影响性能。)*
- 0个或更多空格以匹配尾随空格。(\s
避免)$
- 表示测试字符串的结束。
以上正则表达式演示。