pre_match问题并且与所寻求的值不匹配

时间:2013-12-27 16:06:29

标签: php regex preg-match

我正在尝试让pre_match正常工作以获取值的结果,如下所示:

readonly="readonly" value="xxxx-xxxxxx@gigs.craigslist.org"></li>

我只想抓住价值领域内的内容,并根据这一点而不去担心readonly或

这是我试图无济于事的事情:

preg_match("value=\"([\w-]+[0-9]+@\w*\.?craigslist.org)\"/i", $compiled_results, $matches2);

我做错了什么?

3 个答案:

答案 0 :(得分:1)

看到的主要问题是你错过了起始分隔符/。您还可以使用'引用正则表达式并避免在此处转义并使用@

替换[\w-]+之前的部分

仅仅是以下几点?

preg_match('/value="([\w-]+@\w*\.?craigslist\.org)"/i', $compiled_results, $match);
echo $match[1];

请参阅Live demo

根据您是否正在寻找特定匹配,或者只是想匹配并捕获值字段的引号之间的所有内容,您只需使用。

preg_match('/value="([^"]*)"/i', $compiled_results, $match);

答案 1 :(得分:0)

缺少开始/

preg_match("/value=\"([\w-]+[0-9]+@\w*\.?craigslist.org)\"/i", $compiled_results, $matches2);

答案 2 :(得分:0)

尝试以下方法:

preg_match("/value=\"(\w+-\d+@\w+\.?craigslist.org)\"/i", $compiled_results, $matches2);

Demo.