这个REGEX没有像我希望的那样工作......
/<ol class=\"references\">\/(.*?)<\/ol>/s
我在PHP中将它与preg_match
结合使用。
preg_match_all("/<ol class=\"references\">\/(.*?)<\/ol>/s", $file, $mats);
当我将其放入http://regex101.com/时,似乎问题是它希望匹配/解析的字符串为<ol class="references">/text here</ol>
?
它声明:\/ matches the character / literally
但是,我希望REGEX和PHP的代码片段能够解析<ol class="references">text here</ol>
答案 0 :(得分:1)
这是正确的\/
匹配文字斜杠,因此您的模式无法匹配:
<ol class="references">text here</ol>
因为表达式在第一个/
之后需要一个文字>
。只需删除它,它应该按要求工作:
<ol class=\"references\">(.*?)<\/ol>
如果元素的内部文本中偶尔出现斜杠(/
),您不想捕捉,则可以进行量化匹配 - ?
- 如下所示:
<ol class=\"references\">\/?(.*?)<\/ol>