私はPythonでどのように再帰的な正規表現のマッチングを実装することができますか(私は例を見つけていませんでした:(例えば、 "foo(bar(bar(foo )))(foo1は)BAR1"どのように再帰正規表現をPythonで実装することができますか?
答えて
残念ながら、私はPythonの正規表現は、再帰的なパターンをサポートしていないと思います
おそらくpyparsingのようなもので、それを解析することができます。http://pyparsing.wikispaces.com/
私は、幸いにも、言っていただろう... – pillmuncher
あなたはでそれを行うことはできません正規表現。Pythonは再帰正規表現をサポートしていません。
あなたpyparsing
#!/usr/bin/env python
from pyparsing import nestedExpr
import sys
astring=sys.argv[1]
if not astring.startswith('('):
astring='('+astring+')'
expr = nestedExpr('(', ')')
result=expr.parseString(astring).asList()[0]
print(result)
を使用することができます実行することが得られます。
% test.py "foo(bar(bar(foo)))(foo1)bar1"
['foo', ['bar', ['bar', ['foo']]], ['foo1'], 'bar1']
これは古い質問ですが、検索してここに来る人のために:
ないのpythonのための代替正規表現モジュールがあります再帰パターンをサポートします: https://pypi.python.org/pypi/regex
そして、それはre
。
すごい新しいエンジン!最後にまともな再帰:)ありがとう。 –
このエンジンはある時点でpythonのstdlibにマージされますか?私はこれについての最近の会話を見つけることができないようです。 –
この回答は実際には例の恩恵を受けるでしょう! :) –
- 1. 正規表現エンジンは再帰的サブパターンで正規表現をどのように解析しますか?
- 2. Pythonでの正規表現の実装
- 3. Pythonの正規表現が正しく再帰しない
- 4. Pythonで正規表現をどのようにデバッグできますか?
- 5. Python正規表現で文字列アンエスケープを実装する
- 6. この正規表現をよりうまく実行できますか?
- 7. このテキストを正規表現とどのように一致させることができますか?
- 8. Perl:正規表現マッチをどのように大文字にすることができますか?
- 9. 正規表現:どのように正規表現を使用することにより、引用符
- 10. IPv6アドレスとPerl正規表現をどのように一致させることができますか?
- 11. これはどのようにしてAndroid用の正規表現を書くことができますか?
- 12. この正規表現パターンをどのように読むべきですか?
- 13. どのように正規表現のpythonで
- 14. 再帰的なJavaの正規表現に置き換えますか?
- 15. 拡張正規表現の実装でHTMLを解析できますか?
- 16. これを正規表現でどう捕まえることができますか?
- 17. 正規表現のパターンマッチングが再帰的に機能しない
- 18. Pythonの正規表現ですか?
- 19. どのような代替案がPerlの正規表現パターンで一致するかをどのようにして知ることができますか?
- 20. Pythonでの正規表現[^。]
- 21. Pythonは正規表現を再利用
- 22. 正規表現を使用してシャントアルゴリズムを実装できますか?
- 23. このコードを再帰的に再実装するにはどうすればよいですか?
- 24. ...私は正規表現の限界に挑戦することができる正規表現グループ
- 25. Pythonの正規表現です。誰でも初心者を助けることができますか?
- 26. Ruby:equalsが正規表現の正規表現でなぜ解析エラーを引き起こすのですか?
- 27. どのようにしてPythonの最大再帰深度を増やすことができますか?
- 28. Python 3.3正規表現ですか?
- 29. CKeditorの正規表現と一致する要素をどのように強調表示できますか?
- 30. この正規表現は何を実現しますか?
私はこれのためのパーサを書いています。 – Geo
@Tempus、確かに、またはトニーが来るでしょう。 http://stackoverflow.com/a/1732454/193892 –
@AmigableClarkKantそれは大丈夫です、私はトニーを知っています。彼は友人です。 – Geo