【问题标题】:Regexp to find the lenght of string which starts with a number正则表达式查找以数字开头的字符串的长度
【发布时间】:2016-07-04 19:25:00
【问题描述】:

找到以数字开头的字符串长度的正则表达式应该是什么。我已经尝试过([0-9].*){5,}这个,但它不起作用。

我想检查字符串是否以数字开头并且长度大于5

【问题讨论】:

  • 你能添加一些示例输入吗

标签: java regex pattern-matching


【解决方案1】:

检查字符串是否以数字开头且长度大于5

你可以使用这个正则表达式:

\b\d\S{5,}

正则表达式分解:

\b     - word boundary
\d     - match a digit
\S{5,} - match any non-space character 5 or more times

在 Java 中,正则表达式是:

Pattern p = Pattern.compile("\\b\\d\\S{5,}");

【讨论】:

  • 应该是 4,而不是 5,因为初始数字也很重要。
  • 对,但 OP 写了length greater than 5,这意味着有效输入输入的长度应至少为 6
【解决方案2】:

您不需要输入“.*”。这意味着匹配它的任何连续重复。

只需尝试 [0-9]{5,}

【讨论】:

  • 仅匹配 5 位或更多位。 1abcd 也应该匹配,因为它“以数字开头且长度大于 5”
【解决方案3】:

我想检查字符串是否以数字开头并且长度大于5

所以,第一个字符必须是数字:[0-9]
它必须包含至少 4 个以上的字符,总共 5 个:.{4,}

if (text.matches("[0-9].{4,}")) {
    // YAY
}

请参阅regex101 进行演示。

【讨论】:

    【解决方案4】:

    ([0-9].*){5,} 几乎很好,但你正在寻找:
    [0-9] 一个数字
    .* 任何字符 0 直到无限次
    这至少 5 次

    如果你有机会[0-9].{5,},你会得到以下信息:
    [0-9] 任何数字
    . 任何字符 5 次或更多次

    你可以将[0-9] 变成\d 然后你会得到\d.{5,}
    在前面添加\b 使其成为单词的开头,然后您会得到以下内容:
    \b\d.{5,}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-02
      • 2015-04-02
      • 2016-03-03
      • 2011-09-16
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多