Php preg_match_all()从字符串中获取一个数字
preg_match_all()如何工作 我想从字符串中获取一个数字: 我有一个结果: (62) 我只想要号码。并且想要对几个字符串执行此操作。 这就是我所做的尝试:Php preg_match_all()从字符串中获取一个数字,php,foreach,numbers,preg-match-all,Php,Foreach,Numbers,Preg Match All,preg_match_all()如何工作 我想从字符串中获取一个数字: 我有一个结果: (62) 我只想要号码。并且想要对几个字符串执行此操作。 这就是我所做的尝试: foreach($html2->find('small[class=menu-item__label__count]') as $aholder) { $holderdes=$aholder->outertext; preg_match_all('/([0-9]+)/', $holderdes,$num); e
foreach($html2->find('small[class=menu-item__label__count]') as $aholder) {
$holderdes=$aholder->outertext;
preg_match_all('/([0-9]+)/', $holderdes,$num);
echo $num.'<br>';
foreach($html2->find('small[class=menu-item\uuuuu label\uuuu count]”)作为$aholder){
$holderdes=$aholder->outertext;
preg_match_all(“/([0-9]+)/”,$holderdes,$num);
回显$num.“
”;
返回的是“数组…”您应该打印
$num[0];
foreach($num[0] as $pattern)
// do something with $pattern
此外,您的正则表达式看起来也是错误的。如果要匹配(61)
,则需要执行以下操作(包括括号):
如果您的字符串类似于
“(62)”
然后你可以使用这个:
<?php
$str = '(62)';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);
?>
另外,如果您尝试回显数组($num
),则不会出现任何错误
打开错误报告以进行调试
error_reporting(E_ALL);
ini_set("display_errors", 1);
preg_match返回一个数组,从中可以看到 如果要查看数组的所有内容,请使用
var_dump( $sum );
如果您只需要匹配的,您必须解决该特定部分
查看regex快速参考
- [abc]单个字符:A、b或c
- [^abc]任何单个字符,但 a、 b,还是c
- [a-z]a-z范围内的任何单个字符 -[a-zA-Z]a-Z或a-Z范围内的任何单个字符
- ^起跑线
- $行尾 -\字符串的开头
- \z字尾
- .任何单个字符
- \这是任何空格字符
- \S任何非空白字符
- \d任意数字
- \D任何非数字
- \w任意单词字符(字母、数字、下划线)
- \W任何非单词字符 -\b任何单词边界字符
- (…)捕获所有封闭的东西
- (a | b)a或b
- 一个?零个还是一个
- 一个*零个或多个
- a+一个或多个a
- a{3}正是a的3
- 一个{3,}3或更多的
- a的3和6之间的{3,6}
<?php
$strings = array ("fHzZGh4JMyfpc5visCC3q1a1ICBLWXnmfxoRa70S9HXHjBSVI4",
"1LRWmzTQBErP6kIqXRLMgzWoVdOJKrLpUbL99sZ3XdtscAvydG",
"5OMbG1hFMrTkMeThw64E80QqfLvxbZjo3tlsVzeJiDCDAn4D6C",
"lrYFqKKtarRHfteYHUDx4KAEjssvs12Ix5u3YGQKATQBxtqAhn",
"W3a3n0jzXtM2l5i8tOVnxPbBeGAz0ChzDQ6qhReQkdHTQ4sLmz");
$nums = array ();
foreach ($strings as $string) {
preg_match_all('/\d+/', $string, $matches);
$nums[] = $matches;
}
print_r($nums);
var_dump($num)是您的答案
var_dump( $sum );
<?php
$strings = array ("fHzZGh4JMyfpc5visCC3q1a1ICBLWXnmfxoRa70S9HXHjBSVI4",
"1LRWmzTQBErP6kIqXRLMgzWoVdOJKrLpUbL99sZ3XdtscAvydG",
"5OMbG1hFMrTkMeThw64E80QqfLvxbZjo3tlsVzeJiDCDAn4D6C",
"lrYFqKKtarRHfteYHUDx4KAEjssvs12Ix5u3YGQKATQBxtqAhn",
"W3a3n0jzXtM2l5i8tOVnxPbBeGAz0ChzDQ6qhReQkdHTQ4sLmz");
$nums = array ();
foreach ($strings as $string) {
preg_match_all('/\d+/', $string, $matches);
$nums[] = $matches;
}
print_r($nums);
Array
(
[0] => Array
(
[0] => Array
(
[0] => 4
[1] => 5
[2] => 3
[3] => 1
[4] => 1
[5] => 70
[6] => 9
[7] => 4
)
)
[1] => Array
(
[0] => Array
(
[0] => 1
[1] => 6
[2] => 99
[3] => 3
)
)
[2] => Array
(
[0] => Array
(
[0] => 5
[1] => 1
[2] => 64
[3] => 80
[4] => 3
[5] => 4
[6] => 6
)
)
[3] => Array
(
[0] => Array
(
[0] => 4
[1] => 12
[2] => 5
[3] => 3
)
)
[4] => Array
(
[0] => Array
(
[0] => 3
[1] => 3
[2] => 0
[3] => 2
[4] => 5
[5] => 8
[6] => 0
[7] => 6
[8] => 4
)
)
)