2009-04-02 10 views
2

を交換するには、私はよく自分がに私を可能にするツールを必要と見つけます。正規表現の大規模な検索のためのツールと

は、私は必要があります:それは自分自身

  • 使用は何か誰かがすでに組み込まれているようなツールを構築するために必要でしょう

    1. は特にだ言語を使用することを学ぶ(提案してください)2時間かかります(Perlの?)事のこのタイプで良い


    私は何千ものエントリを含むXML文書を持っています。削除する必要のある既知の値フィールドを持つ約100のエントリがあります。私は各エントリの正規表現を作ることができます。式は、値ストリング部分を除いて100個のエントリーについて同じです。このツールは、すべての値に対して1回、または式で100個のOR項(|)で1回だけループする必要があります(巨大になるでしょう)。この場合は、一致を空白に置き換えますが、それ以外の場合は、テキストを再フォーマットして値フィールドを再挿入します。

  • 答えて

    2

    私はあなたがPythonに物を書くべきであると思う。 Python reライブラリは素晴らしいです:

    # get the re library 
    import re 
    
    # this is the line to process 
    xml_line = "<stuff><bad i_am_naughty=\"True\"></bad></stuff>" 
    # compile a regex 
    exp = re.compile ("(.*)(<bad.*bad>)(.*)") 
    # run the regex on the line 
    match = exp.search (xml_line) 
    # print out the groups the regex found 
    print match.groups() 
    

    N.B. python XML parsing librariesを使用して、不要な要素を取り除くこともできます。 PythonのXMl解析を使用すると、私の例(複数の行など)で無視した複雑さの一部が簡素化されます。 PythonのXML解析の代わりに、questionには、PythonでXMLを解析する良い答えがあります。

    0

    正規表現を使用しないことをお勧めします。 XMLは通常、XMLツールで処理する必要があります。単にXSLTを使用しないのはなぜですか?

    +0

    この場合はxmlですが、多くの場合はそうではありません。 –

    +0

    私は彼が正規表現を使用して、作成しやすい値の1つを選択するための表現をしたいと思うと思います。 XSLTの代わりに約100個のテンプレートが一致するでしょう。 – hughdbrown

    1

    私はあなたのデータがどのように見えるか、かなり分かりませんが、私は3回のパスでのpythonでツールを作成することを検討します:

    1. がXML.pathのラインにXMLパスプラス変数=値のファイルを変換します.variable =値
    2. は、おそらくXML.path.variable =値線の出力
    3. 変換短縮リストから行を削除し、各ラインに大規模な正規表現を適用するバックXML
    関連する問題