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

php正则表达式中的转义斜杠

php正则表达式中的转义斜杠,php,regex,preg-match,Php,Regex,Preg Match,我试图用PHP执行preg_匹配,但无法正确地避开斜杠。preg_匹配应该返回Prozessor和first slash之间的subserting $str="Prozessor: AMD A-Serie A8-4500M / 19 GHz ( 28 GHz ) /"; preg_match('/Prozessor: (.*) \//', $str, $matches) Prozessor: AMD A-Serie A8-4500M / 19 GHz ( 28 GHz ) / 我想知道处理

我试图用PHP执行preg_匹配,但无法正确地避开斜杠。preg_匹配应该返回Prozessor和first slash之间的subserting

$str="Prozessor: AMD A-Serie A8-4500M / 19 GHz ( 28 GHz ) /";

preg_match('/Prozessor: (.*) \//', $str, $matches)

Prozessor: AMD A-Serie A8-4500M / 19 GHz ( 28 GHz ) /
我想知道处理器的名称,它应该会还给我

AMD A-Serie A8-4500M 
我做错了什么

使用
/Prozessor:(.*?)\/
。这将取代一个。例如:

$str="Prozessor: AMD A-Serie A8-4500M / 19 GHz ( 28 GHz ) /";
preg_match('/Prozessor: (.*?) \//', $str, $matches);

var_dump($matches[1]);
// string(33) "Prozessor: AMD A-Serie A8-4500M"

使用非贪婪量词:

preg_match('/Prozessor: (.*?) \//', $str, $matches)
或字符类:

preg_match('/Prozessor: ([^\/]*) \//', $str, $matches)
另外请注意,如果更改正则表达式分隔符,则无需担心转义:

preg_match('#Prozessor: ([^/]*) /#', $str, $matches)
这项工作:

或者,您也可以在正则表达式的末尾添加一个ungreedy修饰符:

preg_match('/Prozessor: (.*) \//U', $str, $matches)
更多信息请点击此处:

string(20) "AMD A-Serie A8-4500M"
preg_match('/Prozessor: (.*) \//U', $str, $matches)