私は正規表現に不慣れで、re.split機能に問題があります。
私の場合、分割は「特別なエスケープ」を気にする必要があります。
;
先頭に。がある場合を除いて、テキストはで区切る必要があります?
。
編集:その場合、2つの部分を分割してはならず、?
を削除する必要があります。
ここに例と私が望む結果があります:
import re
txt = 'abc;vwx?;yz;123'
re.split(r'magical pattern', txt)
['abc', 'vwx;yz', '123']
私はこれまでこれらの試みを試みました:
re.split(r'(?<!\?);', txt)
そして得た:
['abc', 'vwx?;yz', '123']
悲しいことに、消費されない?
問題を引き起こし、次のリスト内包表記はパフォーマンスにとって重要です。
[part.replace('?;', ';') for part in re.split(r'(?<!\?);', txt)]
['abc', 'vwx;yz', '123']
reでその動作を再現する「高速」な方法はありますか?
re.findall関数が解決策になるでしょうか?
たとえば、このコードの拡張バージョンは次のとおりです。
re.findall(r'[^;]+', txt)
私はPython2.7.3を使用しています。
よろしくお願いします!