ホームページ >バックエンド開発 >PHPチュートリアル >正確なデータ抽出のために正規表現内のオプションの空白を処理するにはどうすればよいですか?
オプションの空白正規表現: 属性値のスペースを無視する
プログラミングでは、文字列にオプションの空白が含まれるインスタンスを処理する必要があるシナリオがあります。 。データを正確に抽出するための正規表現を記述する場合、これは困難な場合があります。
次のコードを考えてみましょう:
# Get Image data preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch); $image = $imagematch[4];
このコードは、HTML マークアップから画像の src 属性を抽出します。ただし、
<code class="html"><a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a></code>
または
<code class="html"><a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a></code>
など、特定の属性の間に空白がない場合は処理できません。この問題に対処するには、オプションの空白正規表現を使用できます。これにより、文字間のスペースを無視できるようになります。その方法は次のとおりです:
#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#
この更新された正規表現では:
以上が正確なデータ抽出のために正規表現内のオプションの空白を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。