私はこのパターンを示す以下のファイル名を持っている:空の文字列なしでPythonの正規表現の分割
000014_L_20111007T084734-20111008T023142.txt
000014_U_20111007T084734-20111008T023142.txt
...
私は2番目のアンダースコア'_'
後と'.txt'
前中央の2つのタイムスタンプの部分を抽出したいです。だから私は、次のPythonの正規表現文字列の分割使用:
time_info = re.split('^[0-9]+_[LU]_|-|\.txt$', f)
をしかし、これは返されたリスト内の2つの余分な空の文字列私に与える:私は2つのだけのタイムスタンプ情報を取得するにはどうすればよい
time_info=['', '20111007T084734', '20111008T023142', '']
?すなわち、私がしたい:
time_info=['20111007T084734', '20111008T023142']
これは素晴らしい解決策です。ありがとう。 – tonga
「分割」には「空の文字列なし」オプションがありません。 – Elazar
@Elazar実際には、 're.split()'がどのように実装され、その意図された目的が何であるかの問題です。このような場合、望ましくないすべてのものと一致するものを構築するよりも、望ましいデータのパターンを構築する方が理にかなっています。 (セパレータが指定されていない場合、 'str.split()'は空文字列を実際にはドロップしませんが、 'None'を返します)。 – JAB