0

我正在使用 java 中的文本处理 Api。我需要匹配以下字符串:

  1. 长度至少为 8 个字符。
  2. 只能包含大写字母、小写字母或空格。
  3. 字母之间不应出现空格。然而,它们可以领先或落后。字符串也可以只包含至少 8 个空格。

我尝试但失败的正则表达式:

  1. ^\s*[a-zA-Z]{8,}\s*$

我在这里尝试的演示。

欢迎任何帮助。

4

1 回答 1

1

您可以使用以下正则表达式来实现您的结果:

^(?=.{8,}) *[a-zA-Z]* *$

上述正则表达式的解释:

  1. ^- 表示测试字符串的开始。
  2. (?=)- 积极的前瞻。
  3. .{8,}- 除换行符以外的任何长度至少为 8 的字符。
  4. *- 0个或多个空格以匹配前导空格。(\s避免)
  5. [a-zA-Z]*- 0 个或多个字母(大写或小写)。(您可以[a-z]*i(不区分大小写)标志一起使用。虽然,不会影响性能。)
  6. *- 0个或更多空格以匹配尾随空格。(\s避免)
  7. $- 表示测试字符串的结束。

以上正则表达式演示

于 2020-05-02T07:46:46.300 回答