匹配字符串中的所有段落(_M)

2022-03-29 00:00:00 regex php preg-match
以下字符串包含多个<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);

相关文章