私は可能な区切り文字のリストを持っています。私は数千の文字列を処理しており、区切り文字の1つが見つかった後はすべてを取り除く必要があります。注:文字列に2つ以上の区切り文字がある場合はありません。正規表現なしの可能な区切り文字のリストの後にすべてを取り除く
例:
patterns = ['abc', 'def']
example_string = 'hello world abc 123'
example_string
この場合に入力された場合、出力はhello world abc
であるべきです。
私は現在、解決策としてregexを使用していますが、これは正規表現を使用しないアプローチを使用したいと考えています。
regex = r'(.*)(' + '|'.join(patterns) + r')(.*)'
example_string= re.sub(regex, r'\1\2', example_string).lstrip()
私はパターンから区切り文字のいずれかが文字列であるかどうかを確認するために検索の線に沿って何かを考え、それまでの区切り文字の長さの位置から文字列のインデックスを作成しています:ここに私の現在の実装ですストリングの終わり。
これを実装するのが適切かどうか、それがうまくいくかどうかはわかりません。
「パターン」にはどれくらいの文字列がありますか?彼らはすべて同じ長さですか? –
パターンには28個の文字列がありますが、時間とともに変化する可能性があります。そして、いいえ、弦の長さは変わります。 – Harrison
その場合、正規表現ベースのアプローチはおそらく正規表現以外のソリューションより優れているでしょう。 –