0

こんにちは、HTML を取得しました。正規表現を使用して、itemprop 属性を取得するすべての HTML タグを見つけようとしました。

HTML の整合性がわからないので、正規表現を使用したいと思います。

私はこの正規表現を試しました。

<(?<balise>.+)>(?(balise).*itemprop=.*)

グループ内のパターンを一致させたいのですが、うまくいきません。

誰かが私を助けることができます

テキスト解析の例

<meta itemprop="currency" content="CDN" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">
<head><span itemprop="name">My name</span>

itempropを取得するhtmlタグのみを抽出する必要があります

4

1 に答える 1

1

コメントで指摘されているように、正規表現を使用して html を解析することは理想とはほど遠いため、適切なフレームワークの使用を検討する必要があります。

ただし、正規表現の使用を主張する場合は、次の行に沿って何かを試すことができます。

(?<=<)\s*([^\s>]+?)(?=\s[^>]*(?<=\s)itemprop="[^<]*?/?>)

で構成される文字列を探します。この文字列のzero or more whitespace characters followed by one or more non whitespace and non > characters前には a が<あり、その後に (指定された順序で) が続く必要があります: a whitespacezero or more non > charactersitemprop=" preceded by a spacezero or more non < characters、。optional />

上記の正規表現は、タグの属性が と に関して正しくバランスが取れていることを保証しません'"また、不正な文字/構文が含まれている場合は失敗しません。タグに開始点、複数の空白で構成される名前、itemprop 属性があり、タグが閉じていることのみをアサートします。

于 2013-04-12T21:55:11.313 に答える