Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串中提取某些值_Php_Regex_String - Fatal编程技术网

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);

?>