我的字符串可能包含以下数据:
我需要剥离这个,以便我只剩下存储为两个单独变量的数字,我可以将其用作另一个代码部分中最长传递时间计算的整数。 我假设我需要使用substr,但我不知道如果你不知道你想剥离的值是什么/如何使用它。 我是否需要为每个可能的第一和第二个数字分别做一行? 并且可以将substr组合在一起同时提取第一个和第二个,还是需要处理两次?
答案 0 :(得分:1)
您可以使用正则表达式和PHP的preg_match_all()
函数轻松完成此操作:
$str = "PTG 10 to 15 days";
preg_match_all('/\d+/', $str, $matches);
print_r( $matches[0] );
// => Array
// (
// [0] => 10
// [1] => 15
// )
如果您想将它们作为个别变量,list()
是您的朋友:
list($first_num, $second_num) = $matches[0];
echo $first_num; // => 10
echo $second_num; // => 15
由于您是正则表达式的新手,我建议您阅读古老的Regular-Expressions.info tutorial。在这种情况下,我们使用正则表达式/\d+/
,它只是表示匹配一个或多个数字的所有序列。 \d
表示"数字" +
表示"一个或多个"在它之前的任何事情。