我有一个这样的文本字符串:
test1test
我想用正则表达式检查它是否至少包含一个数字。这个正则表达式会是什么样子?
6g8kf2rb1#
我很惊讶没有人提到最简单的版本:
\d
如果你的正则表达式引擎支持Unicode,这意味着它将匹配任何语言中定义为数字的任何内容,而不仅仅是阿拉伯数字0-9。不需要像其他答案那样将它放在方括号[中来定义为字符类;\d本身工作正常。因为它没有用^或$锚定,所以它将匹配字符串的任何子集,所以如果字符串至少包含一个数字,它将匹配。而且不需要增加+的复杂性,因为目标只是确定是否有 * 至少一个 * 数字。并且它将以最小的开销来完成。
[
^
$
+
jgwigjjp2#
您要查找的正则表达式如下:
[0-9]
你没有提到你使用的是什么语言。如果你的正则表达式计算器强制RE被锚定,你需要这个:
.*[0-9].*
一些RE引擎(现代的!)还允许您将第一个写为\d(助记符:**d**igit),第二个将变为.*\d.*。
d
.*\d.*
nkoocmlb3#
在Java中:
public boolean containsNumber(String string) { return string.matches(".*\\d+.*"); }
gpnt7bae4#
你可以使用look-ahead assertion:
^(?=.*\d).+$
vtwuwzda5#
另一种可能的解决方案,如果你正在寻找一个给定的字符串中的所有单词,其中包含一个数字
\w*\d{1,}\w*
\w*
\d{1,}
\w*的关键是允许not在单词的开头或结尾有一个字符。这可以捕获文本中的第一个和最后一个单词。如果这里的目标是只获得数字而不获得单词,则可以省略\w*。
Hello world 1 4m very happy to be here, my name is W1lly W0nk4
检查regexr -https://regexr.com/5ff7q中的示例
41ik7eoe6#
参考此
SELECT * FROM product WHERE name REGEXP '[0-9]'
zqry0prt7#
这一点:
\d+
应该工作编辑,不知道为什么我添加了“+”,没有它的工作一样好。
6tqwzwtp8#
在perl中:
if($testString =~ /\d/) { print "This string contains at least one digit" }
其中\d匹配数字。
gdx19jrr9#
如果有人从google上福尔斯这里,这是如何在C#中检查字符串是否至少包含一个数字:
if (Regex.IsMatch(myString, @"\d")) { // do something }
using System.Text.RegularExpressions
if (myString.Any(c => Char.IsDigit(c))) { // do something }
using System.Linq
9条答案
按热度按时间6g8kf2rb1#
我很惊讶没有人提到最简单的版本:
如果你的正则表达式引擎支持Unicode,这意味着它将匹配任何语言中定义为数字的任何内容,而不仅仅是阿拉伯数字0-9。
不需要像其他答案那样将它放在方括号
[
中来定义为字符类;\d
本身工作正常。因为它没有用
^
或$
锚定,所以它将匹配字符串的任何子集,所以如果字符串至少包含一个数字,它将匹配。而且不需要增加
+
的复杂性,因为目标只是确定是否有 * 至少一个 * 数字。并且它将以最小的开销来完成。jgwigjjp2#
您要查找的正则表达式如下:
你没有提到你使用的是什么语言。如果你的正则表达式计算器强制RE被锚定,你需要这个:
一些RE引擎(现代的!)还允许您将第一个写为
\d
(助记符:**d
**igit),第二个将变为.*\d.*
。nkoocmlb3#
在Java中:
gpnt7bae4#
你可以使用look-ahead assertion:
vtwuwzda5#
另一种可能的解决方案,如果你正在寻找一个给定的字符串中的所有单词,其中包含一个数字
模式
\w*
-匹配[A-Za-z 0 -9_]的0个或多个示例\d{1,}
-匹配数字的1个或多个示例\w*
-匹配[A-Za-z 0 -9_]的0个或多个示例\w*
的关键是允许not在单词的开头或结尾有一个字符。这可以捕获文本中的第一个和最后一个单词。如果这里的目标是只获得数字而不获得单词,则可以省略
\w*
。给定字符串
匹配
检查regexr -https://regexr.com/5ff7q中的示例
41ik7eoe6#
参考此
zqry0prt7#
这一点:
应该工作
编辑,不知道为什么我添加了“+”,没有它的工作一样好。
6tqwzwtp8#
在perl中:
其中
\d
匹配数字。gdx19jrr9#
如果有人从google上福尔斯这里,这是如何在C#中检查字符串是否至少包含一个数字:
using System.Text.RegularExpressions
*using System.Linq
*