【发布时间】:2016-07-04 19:25:00
【问题描述】:
找到以数字开头的字符串长度的正则表达式应该是什么。我已经尝试过([0-9].*){5,}这个,但它不起作用。
我想检查字符串是否以数字开头并且长度大于5
【问题讨论】:
-
你能添加一些示例输入吗
标签: java regex pattern-matching
找到以数字开头的字符串长度的正则表达式应该是什么。我已经尝试过([0-9].*){5,}这个,但它不起作用。
我想检查字符串是否以数字开头并且长度大于5
【问题讨论】:
标签: java regex pattern-matching
检查字符串是否以数字开头且长度大于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,}");
【讨论】:
length greater than 5,这意味着有效输入输入的长度应至少为 6
您不需要输入“.*”。这意味着匹配它的任何连续重复。
只需尝试 [0-9]{5,}
【讨论】:
1abcd 也应该匹配,因为它“以数字开头且长度大于 5”。
我想检查字符串是否以数字开头并且长度大于5
所以,第一个字符必须是数字:[0-9]
它必须包含至少 4 个以上的字符,总共 5 个:.{4,}
if (text.matches("[0-9].{4,}")) {
// YAY
}
请参阅regex101 进行演示。
【讨论】:
([0-9].*){5,} 几乎很好,但你正在寻找:[0-9] 一个数字 .* 任何字符 0 直到无限次
这至少 5 次
如果你有机会[0-9].{5,},你会得到以下信息:[0-9] 任何数字 . 任何字符 5 次或更多次
你可以将[0-9] 变成\d 然后你会得到\d.{5,}
在前面添加\b 使其成为单词的开头,然后您会得到以下内容:\b\d.{5,}
【讨论】: