我有一个 html 字符串
$html = <p>I'm a para</p><b> I'm bold </b>
现在我可以使用 php regex 将粗体标签替换为 wiki 标记(*):
$html = preg_replace('/<b>(.*?)<\/b>/', '*\1*', $html);
除此之外,我还希望在同一 phppreg_replace
函数中删除粗体标记中的前导和尾随空格。
谁能帮助我如何做到这一点?
提前致谢,
瓦伦
除此之外,我还希望删除粗体标记中的前导和尾随空格
很简单,这会做得很好。
$html = preg_replace('/<b>\s+(.*?)\s+<\/b>/', '*\1*', $html);
查看演示
Try using:
$html = preg_replace('~<b>\s*(.*?)\s*</b>\s*~i', '*\1*', $html);
\s
in between the tags and the string to keep will strip away the spaces to trim. The i
flag just for case insensitivity and I used ~
as delimiters so you don't have to escape forward slashes.
为此使用\s
符号(\s*
表示可能出现 0 次或更多次):
$html = preg_replace('/\<b\>\s*(.*?)\s*\<\/b\>/i', '*\1*', $html);
-我还建议使用i
修饰符,因为 html 标签不区分大小写。最后,为了更安全,符号<
和>
应该被转义(它们是一些正则表达式的一部分。你的正则表达式可以在不转义它们的情况下工作,但是转义它们是一个好习惯,所以一定要避免错误)
(编辑):似乎我误解了“尾随/领先”的意思。