簡體   English   中英

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM