2017-02-09 15 views
-2

を認識しません。私はすでに正規表現のpythonのドキュメントを読んでいると言って、私は正規表現を書き直すことはできませんreモジュールを使用します。 だから、それは基本的な正規表現です:python regexはパターン

\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_* 

私はegrepをして、それは私が欲しいものを完璧に一致しますが、Pythonはそれぞれ分析した文字列のNoneを返し続けるのでそれは私の目的のためにokです知っています。 XXX、XX_X、_xxx、入力がXX_ ある_XX_XXXX_:

EDIT 予想される出力は、それが文字で始まる、すべて大文字で、おそらく文字や数字、また_ことができた後、すべてがでたり_なしで開始され小文字の文字列とスペース。 (すべての

+0

一致するはずの文字列を追加します。 – dawg

+0

は一致する正規表現の入力文字列は何ですか?期待される結果は何ですか? –

+1

'[A-Z | 0-9 | \ _]'は疑わしいです:変更は文字クラスでは機能しません。それは '[]'の中の単一の文字と一致します – dawg

答えて

1

まず、あなたの正規表現は、あなたが_をエスケープする必要はありません、rugieが言ったように私はより多くの_?[A-Z][A-Z0-9_]+

のような何かを提案することができ、改善することができ、あなたが望むよう[A-Z|0-9|\_]は本当に動作しません。 dawgのコメントを参照してください)。

再モジュールのどの機能を使用しましたか? re.matchの場合は、文字列の先頭からre.matchの検索が行われているため、おそらく動作しません。 パターンが文字列内にあるかどうかを知りたいのですか、この文字列のすべてのパターンをキャッチしますか?最初はre.search、2番目はre.findallです。

あなたが試したことを教えてください。もっと手伝ってください。

+0

私はfindallを使用してより良い(pythonic)正規表現を書き直すことができました。探している!あなたLiadありがとう! –

+0

嬉しいことに:) – Liad