Php 从字符串中提取某些值
我有这样一个字符串:Php 从字符串中提取某些值,php,regex,string,Php,Regex,String,我有这样一个字符串: filter-sex=1,1_filter-size=2,3_filter-material=3,5 如何仅从中提取数字对(“1,1”、“2,3”和“3,5”),并将它们放入数组中 我知道我可以多次使用explode(),但我想知道是否有一种简单的方法可以使用regex 我正在使用PHP。这是: preg_match_all('/(?<==)\d+,\d+/', $subject, $result, PREG_PATTERN_ORDER); $result = $r
filter-sex=1,1_filter-size=2,3_filter-material=3,5
如何仅从中提取数字对(“1,1”、“2,3”和“3,5”),并将它们放入数组中
我知道我可以多次使用explode(),但我想知道是否有一种简单的方法可以使用regex
我正在使用PHP。这是:
preg_match_all('/(?<==)\d+,\d+/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];
preg\u match\u all('/(?这个/\d\d/
应该匹配所有的单位数数字对,使用它来获得字符串数组num,num
。如果您希望使用多位数,请使用/\d+,\d+/
您可以尝试以下方法:
但它还返回以下内容之前的字符串:
<?php
$string = "filter-sex=1,1_filter-size=2,3_filter-material=3,5";
$result = preg_split('/[a-z-_]+=([0-9],[0-9])/', $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
print_r($result);
?>
谢谢,但我只需要数字对。更新后它只返回数字。谢谢!没关系,但没有第二行。@Psyche是的,这只是一个作业。我知道这被标记为“regex”,但使用explode怎么办?
<?php
$string = "filter-sex=1,1_filter-size=2,3_filter-material=3,5";
$result = preg_split('/[a-z-_]+=([0-9],[0-9])/', $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
print_r($result);
?>
Array
(
[0] => 1,1
[1] => 2,3
[2] => 3,5
)
<?php
$str = "filter-sex=1,1_filter-size=2,3_filter-material=3,5";
preg_match_all("#[0-9]+,[0-9]+#", $str, $res);
print_r($res);
?>