【发布时间】:2018-12-22 11:56:12
【问题描述】:
我想使用 php 检查以下字符串中的 10 位数字
$str1 = "when an unknown 8109100000 remaining essentially unchanged.";
$str2 = "when an unknown remaining essentially unchanged.";
当找到 10 位数字时返回 true
【问题讨论】:
标签: php
我想使用 php 检查以下字符串中的 10 位数字
$str1 = "when an unknown 8109100000 remaining essentially unchanged.";
$str2 = "when an unknown remaining essentially unchanged.";
当找到 10 位数字时返回 true
【问题讨论】:
标签: php
为了只匹配精确的 10 位数字,您需要在正则表达式模式中将 {} 与 \b 结合起来。{} 指定位数,\b 表示匹配完整的单词。
在这个例子中,只有最后一个字符串应该返回 true/1。
$str = ["when an unknown 810910000011 remaining essentially unchanged.",
"when an unknown remaining essentially unchanged.",
"when an unknown 8109100000 remaining essentially unchanged."];
Foreach($str as $s){
Echo preg_match("/\b\d{10}\b/", $s) . "\n";
}
然后输出
0
0
1
如预期的那样
【讨论】:
您可以使用 preg_match
代码
$str1 = "when an unknown 8109100000 remaining essentially unchanged.";
$str2 = "when an unknown remaining essentially unchanged.";
$pattern = "/\b\d{10}\b/";
$isNum = preg_match($pattern,$str1, $match); //return 1 $str2 return 0.
if($isNum){
//Do something
}
else{
//Aww.... No number in string.
}
echo $match[0]; //return matched number.
阅读更多关于preg_match Regex
【讨论】: