我正在尝试让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);
我做错了什么?
答案 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);