2012-05-10 15 views
3

私は正規表現の経験があまりないことを除いて、preg_replaceを調べてみました。preg_replaceコロンで終わる単語

私がしようとしているのは、コロンで終わるテキストの一部を置き換えて太字にして、前後に改行して改行します。

IEは私がそれを得ることができないよう

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

私はこのような何かをやってみました

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

**title1:** 
is some text here. 

**title2:** 
another piece of text 

に、このテキストに...変換します作業。

誰でも手助けできますか?

おかげ

アンディ

+0

あなたのすべてのテキストは常にそのように見えますか?すなわち:title:body。タイトル:本文。タイトル:本文。 – Jake

+0

問題が交換品やパターンにあるかどうか知っていますか? – Jake

+0

データベースにテキストフィールドがありません。私はこのようなテキストを取りたいと思っています--->許可:プロジェクトのための森林伐採許可は現在、曖昧なことです。契約:Coastal 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

「コロンで終わるテキストの部分」は常に1語だけですか? 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

私はその最後の1つでエラーを得たが、これはうまく動作します。あまりにも多くの人に感謝... 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; 
関連する問題