ファイルを持つsvgsまたはpngsを探したいと思います。ファイルの一部は次のようになり画像が= attribue Vにある "..."pythonファイル内のパスを持つ画像を見つける
:「[
:
<symbol alpha="1" type="marker" name="0">
<layer pass="0" class="SvgMarker" locked="0">
<prop k="angle" v="0"/>
<prop k="fill" v="#000000"/>
<prop k="name" v="../Downloads/Inkscape_vectorisation_test.svg"/>
<prop k="offset" v="0,0"/>
<prop k="offset_unit" v="MM"/>
<prop k="outline" v="#000000"/>
<prop k="outline-width" v="1"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="size" v="hello.png"/>
<prop k="size_unit" v="MM"/>
</layer>
私のようなリストを取得したいのですが。 ./Downloads/Inkscape_vectorisation_test.svg','hello.png ']
私のpythonコード:私は私の正規表現をテストしてみた
import re
projectFile = open("project.xml", "r")
regex = re.compile(r'(?<=v\=").+(\.svg|\.png)(?="/>)')
for line in projectFile:
result = regex.findall(line)
for filename in result:
print filename
http://pythex.org/はうまく動作しますが、Pythonコンソールでは結果はちょうど.svg
です。キャプチャグループ(\.svg|\.png)
の解釈が異なるようです。私は間違って何をしていますか?
これは受け入れられる回答でなければなりません - +1! – Jan
お返事ありがとうございました!正規表現は必須条件ではありません。要素を印刷したり、ループしたりするときの2つの質問は、とはどういう意味ですか?見つかった項目を印刷する方法は?そして、私はこれをsvgとpngにどのように制限しますか? –
あなたが印刷したいものは、あなたが望むURIを含む要素です(例えば ' ') これらの要素があるので、あなたがする必要があるのは、 'v'属性にアクセスすることだけです。これはあなたにURI(' "../ Downloads/Inkscape_vectorisation_test.svg" ')を与えます。 –
lucasnadalutti