匹配字符串中的所有段落(_M)
以下字符串包含多个
<p>
标记。我希望将每个<p>
的内容与一个模式进行匹配,如果匹配,则希望向该特定段落添加一个css类。
例如,在下面的字符串中,只有第二个段落的内容匹配,所以我只想向该段落添加一个类。
$string = '<p>para 1</p><p>نص عربي أو فارسي</p><p>para3</p>';
使用以下代码,我可以匹配所有字符串,但我找不到如何找到特定段落。
$rtl_chars_pattern = '/[x{0590}-x{05ff}x{0600}-x{06ff}]/u';
$return = preg_match($rtl_chars_pattern, $string);
解决方案
- 在
<p>
标记上创建捕获组 - 使用
preg_replace
https://regex101.com/r/nE5pT1/1
$str = "<p>para 1</p><p>نص عربي أو فارسي</p><p>para3</p>";
$result = preg_replace("/(<p>)[\x{0590}-\x{05ff}\x{0600}-\x{06ff}]/u", "<p class="foo">", $str, 1);
相关文章