2011-07-18 8 views
-2

検索「」「を次のように私は私のxmlファイル内のXMLタグを以下しているXML文字列内のパターン

<pd:link scheme="http://www.w3.org/1999/xhtml" target="www.altruvest.org <pd:unicode ch="2014"/> or <pd:unicode ch="2014"/> www.Boardmatch.org">"www.altruvest.org <pd:unicode ch="2014"/> or <pd:unicode ch="2014"/> www.Boardmatch.org</pd:link>) 『』は上記のタグPDに

を」:Unicodeのタグは対象の内部テキスト値です。私はタグがPythonのテキスト内にあるようなタグを見つけるために正規表現のパターンを作成したい。

誰でもこのパターンを作成できますか?

+1

あなたのタグがどのように見えるのか不明です。より包括的な入力例を提供し、探しているタグを正確に記述してください。正規表現の言語がわからない場合は、次のように英語で説明してください: "豚"という単語、または行末に角括弧で囲まれた "犬"という単語。 –

+2

あなたのコードを書式化しなかったので誰もあなたの質問を理解することができなかったので、あなたが入れたタグは見えませんでした。このサイトのFAQを読んで、markdown(SOのフォーマット構文)を使用する方法を学んでください。 1分ほどかかります! – mac

答えて

2

編集答え:

>>> s = r'"<pd:link scheme="http://www.w3.org/1999/xhtml" target="www.altruvest.org <pd:unicode ch="2014"/> or <pd:unicode ch="2014"/> www.Boardmatch.org">www.altruvest.org <pd:unicode ch="2014"/> or <pd:unicode ch="2014"/> www.Boardmatch.org</pd:link>"' 
>>> import re 
>>> r = re.search(r'=".*?(<pd:unicode ch="\d+"/>).*?"', s, re.DOTALL) 
>>> r.groups() 
('<pd:unicode ch="2014"/>',) 

何以上行うことは、彼らが="が先行し、"が続いているときpd:unicodeタグを一致させることです。 re.DOTALLは改行を無視します(通常の文字として扱います)。何をする尋ねていること XML、あなたがのXMLParserを使うべきのために何かを解析していることを念頭に置いてベア

正規表現を(たとえばxml.etree以上の一般的な議論hereを参照のこと)、そしてません。正規表現を使用してXMLを正確に解析すると、実際にはnot possibleとなるため、上記の正規表現は誤検出を引き起こす可能性があります。

完全なXMLパーサを使用したくない場合は、代わりにpyparsingなどと考えることができます。

+0

いいえ、 'のようなテキスト内にある場合、' '上記の場合 pd:Unicodeタグはテキスト値内にあります。 – Yogesh

+0

@Yogesh - 編集済みの回答を参照してください! – mac

+0

@Yogesh - あなたから聞いてきません。編集された答えは...あなたの質問に答えましたか?いいえ、フィードバックを提供し、はいの場合は、accpetedとしてマークしてください! :o – mac

関連する問題