2012-05-10 142 views
3

我試着尋找到了preg_replace結尾的單詞,但我有一個正則表達式沒有太多的經驗。的preg_replace用冒號

我試圖做的是更換一個冒號結尾的文本部分,使之大膽,把一個換行符在前後2換行符。

IE轉換本文

title1: is some text here. title2: another piece of text. 

**title1:** 
is some text here. 

**title2:** 
another piece of text 

我試着做這樣的事情...

preg_replace("!\*(.*?)\*!$:","\<br \/\>\<strong\>!\*(.*?)\*!\<\/strong\>\<br \/\>",$text); 

我似乎無法得到它工作。

任何人都可以幫忙嗎?

感謝

安迪

+0

您的所有文字是否總是像這樣?即:標題:正文。標題:身體。標題:身體。 – Jake

+0

你知道問題出在替換還是模式? – Jake

+0

數據庫中沒有它的文本字段。我想採取任何這樣的文字--->允許:該項目的林地清理目前等於等等等等。合同:與沿海Projectsblah等等等等民事合同.....和分裂文成一些更可讀...... –

回答

5

preg_replace正則表達式需要被分隔。所以,首先,嘗試用斜槓包裝你的正則表達式。其次,我不明白你的正則表達式。簡單的像/(\w+):/應該工作。編輯答案來處理多字標題和

preg_replace("/(\w+):/", "<br><br><b>$1</b><br>", $text); 

@AndiLeeDavis得到之初擺脫多餘的休息:

$mtext = preg_replace("/\.?\s*([^\.]+):/", "<br><br><b>$1</b><br>", $text); 
if (strcmp(substr($mtext, 0, 8), "<br><br>") == 0) $mtext = substr($mtext, 8); 
+0

謝謝你的工作。 –

+0

@Ansari我實際上學到了我所知道的關於正則表達式模式的一切。你知道我們的選擇是「更好」還是僅僅是個人喜好? – Jake

+0

「以冒號結尾的文本部分」總是隻有一個單詞? Duh – Johanness

2
$text = 'title1: is some text here. title2: another piece of text.'; 

echo preg_replace('#(\w+:) (.+?\.) ?#', "<b>$1</b><br />$2<br /><br />", $text); 

...給:

<b>title1:</b><br />is some text here.<br /><br /><b>title2:</b><br />another piece of text.<br /><br /> 

乾杯

+0

好吧,我得到了最後一個錯誤,但這一個工作正常。感謝這麼多人... preg_replace(「/(\ w +):/」,「

$ 1
」,$ row_publish_comment ['comment']); –

+0

@AndiLeeDavis我修正了RegEx,不用客氣。如果有幫助,請考慮對投票答案進行投票(如果可以的話)。謝謝。 – Madbreaks

+0

感謝它的所有偉大的東西。 –

0
$str = 'title1: is some text here. title2: another piece of text.'; 
    $str = preg_replace("/(\w+:)/", "\n\n**$1**\n", $str); 
    echo $str;