0

1文字のPHPワイルドカードを使用して文字列を置換するにはどうすればよいですか?

次のコード行で文字列を置き換える必要があります。

<img src="http://mydomain.com/image-1.jpg" alt="image 1"></a>
<img src="http://mydomain.com/image-2.jpg" alt="image 2"></a>
<img src="http://mydomain.com/image-3.jpg" alt="image 3"></a>
<img src="http://mydomain.com/image-4.jpg" alt="image 4"></a>

上記のすべての行内で次の文字列を置き換えたいと思います。

 alt="image *"></a>

ここで、*ワイルドカードは数値を表し、次の大なり記号が付いています。

>

次の結果を得るには:

<img src="http://mydomain.com/image-1.jpg">
<img src="http://mydomain.com/image-2.jpg">
<img src="http://mydomain.com/image-3.jpg">
<img src="http://mydomain.com/image-4.jpg">

可能であれば、1行のPHPコードを使用してこれを実行し、ループステートメントを使用する必要をなくしたいと思います。

前もって感謝します。

4

1 に答える 1

3

正規表現またはRegExでうまくいくはずです。

preg_replace('( alt="image [0-9]+"></a>)', '>', $text);
  • RegExでは、文字グループの構成は[]、グループで指定された任意の文字をワイルドカードとして一致させることができることを意味します。
  • グループ内でダッシュを使用するということは、この場合-、文字グループがからaに及ぶことを意味します。z0-9
  • 文字グループの最後にアスタリスク*を使用すると、グループが0回以上繰り返すことができ、複数の数字で構成される数字を定義できるようになります。
  • アスタリスクの代わりにプラス記号を使用することは、グループが1回以上繰り返すことができることを意味します(空のスロットではなく番号を一致させたいので、これはここでより適している可能性があります)。
于 2012-07-01T21:40:06.907 に答える