Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 - Fatal编程技术网

Php 如何查找和保存字符串中所有出现的模式

Php 如何查找和保存字符串中所有出现的模式,php,regex,Php,Regex,如何在之后和之前获得第一个值;有特别的选择吗 我尝试了多次爆炸,但它似乎对性能不好 例如,对于76个预期值2,对于75个预期值2.22,对于79个预期值3.6 PS:是的,ID号前有空格。您可以使用此正则表达式: $testString = "76,2-2; 75,1-2.22; 79,2-3.6;"; 输出: 结果数组包含您要查找的所有键值对。您可以查找任何值,如: Array ( [76] => 2 [75] => 2.22 [79] => 3.

如何在之后和之前获得第一个值;有特别的选择吗

我尝试了多次爆炸,但它似乎对性能不好

例如,对于76个预期值2,对于75个预期值2.22,对于79个预期值3.6


PS:是的,ID号前有空格。

您可以使用此正则表达式:

 $testString = "76,2-2; 75,1-2.22; 79,2-3.6;";
输出:

结果数组包含您要查找的所有键值对。您可以查找任何值,如:

Array
(
    [76] => 2
    [75] => 2.22
    [79] => 3.6
)

anubhava的方法非常好,特别是如果您想处理一次字符串并多次访问数组,但这似乎更简单:

echo $output['76']
2

echo $output['75']
2.22

echo $output['79']
3.6

输出的格式应该是什么?只需使用适当的字符分解几次。从中捕获第一组。
echo $output['76']
2

echo $output['75']
2.22

echo $output['79']
3.6
 $find = 75; 
 preg_match("/$find,\d+-([^;]+)/", $testString, $match);

 echo $match[1];  // if found it will always be $match[1]