Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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_Preg Match - Fatal编程技术网

Php 查找字符串的正则表达式

Php 查找字符串的正则表达式,php,preg-match,Php,Preg Match,有人能帮我找到下面的正则表达式吗 $string = "id=A12dk9-mds&name=4950"; 在本例中,我需要找到正则表达式来找到动态值A12dk9 mds i、 e=和&之间的动态内容可以使用一个简单的正则表达式 /id=([^&]*)&/ 说明: id=匹配id= [^&]*尽可能匹配除&symbol之外的任何内容并返回该值 &匹配& 只要你知道它们总是在a=和a&之间,这就行了 PHP代码: $string = "id=A12dk9-mds&

有人能帮我找到下面的正则表达式吗

$string = "id=A12dk9-mds&name=4950";
在本例中,我需要找到正则表达式来找到动态值A12dk9 mds


i、 e=和&

之间的动态内容可以使用一个简单的正则表达式

/id=([^&]*)&/
说明:

id=匹配id= [^&]*尽可能匹配除&symbol之外的任何内容并返回该值 &匹配& 只要你知道它们总是在a=和a&之间,这就行了

PHP代码:

$string = "id=A12dk9-mds&name=4950";
preg_match('/id=([^&]*)&/',$string, $answer);
print_r($answer[1]);

一个简单的正则表达式可以用于此

/id=([^&]*)&/
说明:

id=匹配id= [^&]*尽可能匹配除&symbol之外的任何内容并返回该值 &匹配& 只要你知道它们总是在a=和a&之间,这就行了

PHP代码:

$string = "id=A12dk9-mds&name=4950";
preg_match('/id=([^&]*)&/',$string, $answer);
print_r($answer[1]);

RegEx在这里是错误的工具。这看起来像一个查询字符串,所以让我们使用PHP的查询字符串解析器


RegEx在这里是错误的工具。这看起来像一个查询字符串,所以让我们使用PHP的查询字符串解析器


正如@MarkBaker所说的,最好的方法不是正则表达式,而是处理url的查询字符串

因此,以下各项应该可以很好地发挥作用:

parse_str($string,$arr);
echo $arr['id']; // A12dk9-mds

正如@MarkBaker所说的,最好的方法不是正则表达式,而是处理url的查询字符串

因此,以下各项应该可以很好地发挥作用:

parse_str($string,$arr);
echo $arr['id']; // A12dk9-mds

它总是这样的长度和格式吗?那么6个字母或数字连3个字母?嘿,Daedalus,我试过preg_match/id=*&,$string,对不起,我是noobwhy,当PHP有一个parse_str函数来完成这项工作时,为什么要坚持使用regexp?它是否总是这样长度和格式?那么6个字母或数字连3个字母?嘿,Daedalus,我试过preg_match/id=*&,$string,对不起,我是诺布,当PHP有一个parse_str函数来完成这项工作时,为什么要坚持使用regexp呢?这就像preg_match/=[^&]*&/,$string;注意:根据你试图匹配的内容,这可能会产生误报,因为如果你在另一个地方有=胡言乱语,那么它仍然会匹配该部分。我喜欢我的正则表达式模式完全匹配,并且只匹配我要查找的内容。@ajon-True我在等号之前添加了id,以确保您只获取id值。您不能也执行/id=.*?&/?@RocketHazmat-可以。这就像preg_match/=[^&]*&/,$string;注意:根据你试图匹配的内容,这可能会产生误报,因为如果你在另一个地方有=胡言乱语,那么它仍然会匹配该部分。我喜欢我的正则表达式模式完全匹配并且只匹配我要查找的内容。@ajon-True我在等号之前添加了id,以确保您只获得id值。您不能同时执行/id=.*?&/?@RocketHazmat-可以。