2011-08-01 9 views
1

私はこのコードに醜い塊があります。私の質問は、正規表現を使用して@videoPlayer paramの値を抽出する方法です。正規表現を使用してビデオから値を抽出します。

ありがとうございます!コードの

---- BIG UGLYチャンク----

<object id="myExperience121212" class="BrightcoveExperience"> 
    <param name="bgcolor" value="#FFFFFF" /> 
    <param name="width" value="640" /> 
    <param name="height" value="360" /> 
    <param name="playerID" value="fdafafdafda" /> 
    <param name="playerKey" value="fdfadfafdadfafafdadf" /> 
    <param name="isVid" value="true" /> 
    <param name="isUI" value="true" /> 
    <param name="dynamicStreaming" value="true" /> 

    <param name="@videoPlayer" value="10574655567001" /> 
</object> 

..sorryみんな、ここに完全なコードです。これに先行するいくつかのjavascriptがあるので、XMLの使用は問題になりません。私は正規表現が必要です、それは動作します。

更新2:オブジェクトのタグの中にテキストを入れることができたら、それをXMLに変換して解析することができます。しかし、どのようにタグ内のコードですか?

+0

あなたがうまく形成されている場合はXMLを、その後、例えば、XPathを使用します。 /// myobject [id = "myE ..."]/param [name = "@ videoPlayer"] @ value' –

+0

XMLはうまく形成されていません。実際には、それ。 – CloudDev

+1

オブジェクトパーツを切り取り、XMLを持っている –

答えて

1

XMLパーサやBeautifulSoupのようなタグスープパーサーのような、目的に合ったツールを使用してみませんか?

1

あなたがparamタグの名前と値attrributesが常にその順序(最初の名前)になることを知っ場合、この正規表現は(未テスト)動作するはずです:

<param.+?name=['"]@videoPlayer['"].+?value=['"]([^'"]+)['"] 

あなたの場合は、次のような属性を囲む引用符は、常に二重引用符になると、あなたは"['"]のすべてのインスタンスを置き換えることができを知っている:

<param.+?name="@videoPlayer".+?value="([^"]+)" 

タグの値部分は、バックリファレンス$ 1に格納されます。

しかし、ここでは考慮すべき多くの仮定があります。

0

これを試してみてください:

/<param name="@videoPlayer" value="([^\"\']+)"/ 
+0

これは私の答えとほとんど同じです。 – Benjam

+0

これを解決した正規表現: – CloudDev

関連する問題