0

$string = "Lorem Ipsum is #simply# dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard #dummy# text ever since the 1500s, when an unknown printer took a galley of #type1# and scrambled it to #make# a #type2# specimen book. It has survived not only #five# centuries, but also the #leap# into electronic typesetting, remaining essentially unchanged";

次のようなハードコードの単語のセットがあります"#simply# | #dummy# | #five# | #type1#"

出力として期待するのは次のとおりです。

  1. ハードコードの単語が見つかった$string場合は、黒で強調表示されます。のように"<strong>...</strong>"

  2. 単語がハードコード単語リスト$string内にあるが使用できない場合、文字列内のそれらの単語は赤で強調表示されます。#...#

  3. ハードコードの単語に #type1# がありますが、 $string が含まれている場合、#type2# または#type3#強調表示される必要があることに注意してください。

これを行うために、私は以下のように試しました

$pattern = "/#(\w+)#/";

$replacement = '<strong>$1</strong>';

$new_string = preg_replace($pattern, $replacement, $string);

これにより、#..# タグ内にあるすべての単語が強調表示されます。

私は preg が苦手です。誰か助けてください。前もって感謝します。

4

2 に答える 2

0

あなたのニーズを本当に理解しているかどうかはわかりませんが、次のことはどうでしょうか。

$pat = '#(simply|dummy|five|type\d)#';
$repl = '<strong>$1</strong>';
$new_str = preg_replace("/$pat/", $repl, $string);
于 2013-08-14T09:45:04.263 に答える