【问题标题】:Regular Expression containing letters and spaces in specified fashion以指定方式包含字母和空格的正则表达式
【发布时间】:2020-05-02 07:46:15
【问题描述】:

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

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

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

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

我在here 中的尝试演示。

欢迎任何帮助。

【问题讨论】:

  • 用 Java 代码检查 (1) 会容易得多。你考虑过吗?
  • 是的!你是对的@Sweeper。但我想要一个满足所有三个要求的正则表达式。

标签: regex


【解决方案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. $ - 表示测试字符串结束。

高于正则表达式demo

【讨论】:

  • 它符合我的目的。谢谢。为什么您在解释正则表达式时提到了 46 点?
猜你喜欢
  • 2012-09-12
  • 2022-08-04
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 2010-09-15
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多