reモジュールについて助けが必要です。私はパターンを持っています:
pattern = re.compile('''first_condition\((.*)\)
extra_condition\((.*)\)
testing\((.*)\)
other\((.*)\)''', re.UNICODE)
次のテキストに対して正規表現を実行すると、次のようになります。
text = '''first_condition(enabled)
extra_condition(disabled)
testing(example)
other(something)'''
result = pattern.findall(text)
print(result)
[('enabled', 'disabled', 'example', 'something')]
しかし、1 行または 2 行が抜けていた場合、正規表現は空のリストを返します。たとえば、私のテキストは次のとおりです。
text = '''first_condition(enabled)
other(other)'''
私が取得したいもの:
[('enabled', '', '', 'something')]
いくつかのコマンドで実行できますが、1 つの正規表現で実行するよりも遅くなると思います。オリジナルコードはsedを使っているのでとても速いです。sedを使用して実行できますが、クロスプラットフォームの方法が必要です。することは可能ですか?タンクス!
PS文字列のシーケンスが固定ではなく自由になるのも素晴らしいことです:
text = '''other(other)
first_condition(enabled)'''
絶対に同じものを返す必要があります:
[('enabled', '', '', 'something')]