![](/img/trans.png)
[英]How to use RegEx to strip specific leading and trailing punctuation in PHP
[英]Strip leading and trailing whitespaces within a string matched using regex in php
我有一個html字符串
$html = <p>I'm a para</p><b> I'm bold </b>
現在,我可以使用php regex將粗體標簽替換為wiki markup(*):
$html = preg_replace('/<b>(.*?)<\/b>/', '*\1*', $html);
除此之外,我還希望在同一php的preg_replace
函數中刪除粗體標記中的前導和尾隨空格。
誰能幫助我該怎么做?
提前致謝,
瓦倫
為此使用\\s
符號( \\s*
表示可能出現0次或多次):
$html = preg_replace('/\<b\>\s*(.*?)\s*\<\/b\>/i', '*\1*', $html);
-我也建議使用i
修飾符,因為html標記不區分大小寫。 最后,為了更安全起見,應轉義符號<
和>
(它們是某些regex construsts的一部分。您的regex可以在不逃脫轉義的情況下工作,但這是逃避它們的好習慣,因此請確保避免發生錯誤)
(編輯):似乎我誤解了“尾隨/領先”的意思。
嘗試使用:
$html = preg_replace('~<b>\s*(.*?)\s*</b>\s*~i', '*\1*', $html);
標記和要保留的字符串之間的\\s
將去除要修剪的空格。 i
標志僅用於區分大小寫,我使用~
作為分隔符,因此您不必轉義正斜杠。
除此之外,我還希望刪除粗體標簽中的前導和尾隨空格
足夠簡單,這樣做就可以了。
$html = preg_replace('/<b>\s+(.*?)\s+<\/b>/', '*\1*', $html);
觀看演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.