我不熟悉preg_split,但我需要拆分字符串
'_bsdhh__1022232781'
我需要获取数字值,所以我尝试了preg_split,但我不确定如何正确设置模式我需要将此字符串拆分为" _"并附加0-9之间的数字,例如"_1"
但是它不起作用,我需要得到整数值,所以有类似子字符串的东西?我正在使用爆炸,但在更多_值的情况下它没用。这似乎是一个新手问题,但我需要在服务器端快速修复。期待有用的回复。
$exploded = preg_split('_\[0-9]', $str);
答案 0 :(得分:1)
我使用preg_match()
从主题中提取令牌:
<?php
$subject = '_bsdhh__1022232781';
$pattern = '/([0-9]+)/';
preg_match($pattern, $subject, $tokens);
print_r($tokens);
显然,正则表达式可能不是最终的,它取决于你要提取的 的确切定义以及主题的外观。为此,这种方法可能是一个更好的起点:
<?php
$subject = '_bsdhh__1022232781';
$pattern = '/[^0-9]*([0-9]+)[^0-9]*/i';
preg_match($pattern, $subject, $tokens);
print_r($tokens);
答案 1 :(得分:1)
没有正则表达式的版本:
$string = '_bsdhh__1022232781';
$array = explode("_", $string);
function findNumber($values) {
foreach($values as $value) {
if(is_numeric($value)) {
return $value;
}
}
}
$number = findNumber($array);
答案 2 :(得分:0)
要用“_”分割,要查找数字,可以使用preg_match,如@arkascha show。
<强>代码强>
$str = "_bsdhh__1022232781";
$exploded = preg_split('/_/', $str);
print_r($exploded);
希望这会对你有帮助。