2016-09-17 14 views
2

現在、以下のコードを使用してテキストから特定の文字列を取得しています。私は、テキストの束から特定のテキストを取得するためにこのコードを使用
PHPでpreg_match()を使用して、テキストの束から特定の文字列を取得する方法

preg_match('~background(.*?).png~', $css_content, $output); 

。このコードは機能しますが、それは左から右に順番に続きます。たとえば
: のは

テキストの次としましょう ":#FFF;背景:色のURL( '資産/ imgages/background.png');"

今私はテキストを取得したい "の背景を:URL( '資産/画像/ background.png"
機能するpreg_match()は次のように動作します。
それは最初のI "背景" のテキストを検索します上記の関数に追加された場合、関数内に ".png"というテキストも追加されています。これは左から右に動作するように見えますが、それは右から左に向かいます。
私がしたいことはじめて関数が ".png"を見つけてから、 "背景"のテキストに移動する必要があります。

+0

正規表現を使用して左から右に作業します。ここでは、その上で興味深い詳細が見つかりますhttp://stackoverflow.com/questions/2989606/match-regex-from-right-to-leftしかし、なぜregexpが反対方向に動作する必要がありますか?あなたが探しているマッチングは何ですか?例を挙げる。たぶん、法線方向、左から右で行うことができます。 –

答えて

1

all ポジティブルックアヘッド。 ?。

〜(背景...(= \ PNG)〜

- >は、あなたの状況では、バックグラウンド(.pngのが後の場合)

を見つける:

preg_match('~background(.*?)(?=\.png)~', $css_content, $output); 

あなたはここでそれをテストすることができます。

https://regex101.com/r/kC2rO2/1

関連する問題