Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我一直在做这方面的研究,我相信答案是关于正则表达式的,但我就是无法理解它们 我有许多字符串,需要在两个字符之间选择一个数字。下面是一个示例字符串 &user18339=18339,20070103,175439,pmt,793,A/3/1/2,335,793,A/3/1/2, &user31097=31097,20070105,092612,pmt,4190,A/3/1/2,142,1162,A/3/1/1,22,2874,A/3/1/2,1046,4622,A/3/1/2,2

我一直在做这方面的研究,我相信答案是关于正则表达式的,但我就是无法理解它们

我有许多字符串,需要在两个字符之间选择一个数字。下面是一个示例字符串

&user18339=18339,20070103,175439,pmt,793,A/3/1/2,335,793,A/3/1/2,
&user31097=31097,20070105,092612,pmt,4190,A/3/1/2,142,1162,A/3/1/1,22,2874,A/3/1/2,1046,4622,A/3/1/2,25,2872,A/3/1/2,
我需要发生在A/3/1/2之后和以下之前的数字

在这个例子中,我需要选择335。我可以使用explode实现这一点,但是当我需要从字符串中获取多个数字时,我会遇到问题,如下面的示例所示

下面是另一个字符串示例

&user18339=18339,20070103,175439,pmt,793,A/3/1/2,335,793,A/3/1/2,
&user31097=31097,20070105,092612,pmt,4190,A/3/1/2,142,1162,A/3/1/1,22,2874,A/3/1/2,1046,4622,A/3/1/2,25,2872,A/3/1/2,
同样,我需要在A/3/1/2之后,在下面的之前获得数字,。所以在这个例子中,我想取1421046和25

如果有人能让我知道如何做到这一点,将不胜感激

$string = '&user31097=31097,20070105,092612,pmt,4190,A/3/1/2,142,1162,A/3/1/1,22,2874,A/3/1/2,1046,4622,A/3/1/2,25,2872,A/3/1/2,';
preg_match_all('/A\/3\/1\/2,([0-9]*?),/', $string, $matches);
var_dump($matches);

您的示例中多次出现A/3/1/2,但没有指定如何处理它。pmt字符串后的A///序列后面总是整数吗?e、 g.可能出现1、2、n次?你能给这些值赋予一些语义吗?[^,]将匹配任何值,直到,witch也将匹配字符串,他询问如何检索数字而不是所有值。[^,]将匹配任何值,直到,witch也将匹配字符串,他询问如何检索数字而不是所有值。@JWH89,如果这个答案适合你,你应该勾选它作为答案。另外,请投票选出对你有帮助的答案。如果一个答案没有帮助,那么评论——比如为什么它对你不起作用——可以帮助每个人找出最好的答案。