preg_match、regexp、php、从html提取文本
我试图从中提取“佛罗里达(FL)”。 我的代码是 //获取位置 $pattern=“/(状态):(.*)/”; preg_match_all($pattern,$htmlContent,$matches); 打印(匹配项);preg_match、regexp、php、从html提取文本,php,regex,preg-match,Php,Regex,Preg Match,我试图从中提取“佛罗里达(FL)”。 我的代码是 //获取位置 $pattern=“/(状态):(.*)/”; preg_match_all($pattern,$htmlContent,$matches); 打印(匹配项); 知道为什么不起作用吗?我相信原因是因为您试图匹配的字符串在下一行。您需要使用以下选项启用多行模式: $pattern = "/\(State\)<\/i>\:<\/td>(.*)<\/td>/m"; $pattern=“/\(State
知道为什么不起作用吗?我相信原因是因为您试图匹配的字符串在下一行。您需要使用以下选项启用多行模式:
$pattern = "/\(State\)<\/i>\:<\/td>(.*)<\/td>/m";
$pattern=“/\(State\)\:(.*)/m”;
但请记住:试图用正则表达式解析HTML会让邪恶的孩子流下处女的血。见:
当正则表达式中有
(State)
时,它将作为一个组匹配输入字符串中的术语State
,而不会匹配输入字符串中的文字括号-您需要像使用/
s-/\(State\)一样对它们进行转义这似乎是SO的一贯口号:尽可能避免使用regexp解析html。这不是工作的工具。我建议使用HTML解析器,但看了网页后,我改变了主意。。。没有类,没有ID,没有css;很难找到State这个词。
$pattern = "/\(State\)<\/i>\:<\/td>(.*)<\/td>/m";