php preg_split 简单模式任务
php preg_split simple pattern task
我不熟悉 preg_split,但我需要拆分字符串
'_bsdhh__1022232781'
我需要获取数字值所以我尝试了 preg_split 但我不确定如何正确设置模式我需要用“_”拆分这个字符串并附加 0-9 的数字例如 "_1"
但是它不起作用,我需要得到整个数字值,所以有像 substring 这样的东西?我正在使用 explode,但如果有更多 _ 值,它就没用了。这似乎是一个新手问题,但我需要在服务器端进行快速修复。期待有帮助的回复。
$exploded = preg_split('_\[0-9]', $str);
我会使用 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);
没有正则表达式的版本:
$string = '_bsdhh__1022232781';
$array = explode("_", $string);
function findNumber($values) {
foreach($values as $value) {
if(is_numeric($value)) {
return $value;
}
}
}
$number = findNumber($array);
要用“_”拆分,要查找数字,可以使用preg_match,如@arkascha show。
代码
$str = "_bsdhh__1022232781";
$exploded = preg_split('/_/', $str);
print_r($exploded);
希望对您有所帮助。
我不熟悉 preg_split,但我需要拆分字符串
'_bsdhh__1022232781'
我需要获取数字值所以我尝试了 preg_split 但我不确定如何正确设置模式我需要用“_”拆分这个字符串并附加 0-9 的数字例如 "_1"
但是它不起作用,我需要得到整个数字值,所以有像 substring 这样的东西?我正在使用 explode,但如果有更多 _ 值,它就没用了。这似乎是一个新手问题,但我需要在服务器端进行快速修复。期待有帮助的回复。
$exploded = preg_split('_\[0-9]', $str);
我会使用 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);
没有正则表达式的版本:
$string = '_bsdhh__1022232781';
$array = explode("_", $string);
function findNumber($values) {
foreach($values as $value) {
if(is_numeric($value)) {
return $value;
}
}
}
$number = findNumber($array);
要用“_”拆分,要查找数字,可以使用preg_match,如@arkascha show。
代码
$str = "_bsdhh__1022232781";
$exploded = preg_split('/_/', $str);
print_r($exploded);
希望对您有所帮助。