2016-11-09 8 views
1

'.''[]'で分割する正規表現を作成したいが、ここでは角括弧で囲んでおきたい。正規表現をPythonと再モジュールで角括弧とドットで分割する

私は意味:

import re 
pattern = re.compile("\.|[\[-\]]") 
my_string = "a.b.c[0].d.e[12]" 
pattern.split(my_string) 

# >>> ['a', 'b', 'c', '0', '', 'd', 'e', '12', ''] 

しかし、私は(任意の空の文字列なし)次の出力を取得したいでしょう:

# >>> ['a', 'b', 'c', '0', 'd', 'e', '12'] 

それは可能でしょうか?私は多くの正規表現パターンでテストしましたが、それは私が見つけた最高ですが、完璧ではありません。

答えて

1

あなたの正規表現とfilterに数量詞を使用することができます。

>>> pattern = re.compile(r'[.\[\]]+') 
>>> my_string = "a.b.c[0].d.e[12]" 
>>> filter(None, pattern.split(my_string)) 
['a', 'b', 'c', '0', 'd', 'e', '12'] 
+1

おかげでたくさん!あなたの正規表現は、結果要素間の空の文字列に関する私の問題を解決するため、私より優れています – fenix688

関連する問題