我有一个像这样的文本字符串:
test1test
Run Code Online (Sandbox Code Playgroud)
我想检查它是否包含使用正则表达式的至少一个数字.
这个正则表达式是什么样的?
Joe*_*ite 73
我很惊讶没人提到最简单的版本:
\d
Run Code Online (Sandbox Code Playgroud)
这将匹配任何数字.如果您的正则表达式引擎支持Unicode,这意味着它将匹配任何语言中定义为数字的任何内容,而不仅仅是阿拉伯数字0-9.
没有必要把它放在[方括号中]来定义它作为一个字符类,正如其他答案之一所做的那样; \d单独工作.
由于它没有锚定^或$,它将匹配字符串的任何子集,因此如果字符串包含至少一个数字,则匹配.
并且不需要增加复杂性+,因为目标只是确定是否至少有一个数字.如果至少有一个数字,这将匹配; 它会以最小的开销实现这一目标.
Don*_*ows 18
您正在寻找的正则表达式就是这样:
[0-9]
Run Code Online (Sandbox Code Playgroud)
你没有提到你正在使用的语言.如果正则表达式求值程序强制REs被锚定,则需要:
.*[0-9].*
Run Code Online (Sandbox Code Playgroud)
一些RE引擎(现代的!)也允许你写第一个\d(mnemonically:d igit)然后第二个将成为.*\d.*.
小智 14
在Java中:
public boolean containsNumber(String string)
{
return string.matches(".*\\d+.*");
}
Run Code Online (Sandbox Code Playgroud)
Sil*_*ost 11
你可以使用前瞻性断言:
^(?=.*\d).+$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
91426 次 |
| 最近记录: |