それぞれ約 190000 行の 11 ファイルのテキスト コーパスがあります。10 個の文字列があり、そのうちの 1 つ以上が上記のコーパスの各行に表示されます。
10 個の文字列のいずれかに遭遇した場合、行に表示される文字列を個別に記録する必要があります。すべての行の正規表現をループしてマークする力ずくの方法には、長い時間がかかります。これを行う効率的な方法はありますか?
TRUE または FALSE の出力を提供する投稿 ( Match a line with multiple regex using Python ) を見つけました。しかし、次の行から一致する正規表現を記録するにはどうすればよいですか。
any(regex.match(line) for regex in [regex1, regex2, regex3])
編集:例の追加
regex = ['quick','brown','fox']
line1 = "quick brown fox jumps on the lazy dog" # i need to be able to record all of quick, brown and fox
line2 = "quick dog and brown rabbit ran together" # i should record quick and brown
line3 = "fox was quick an rabit was slow" # i should be able to record quick and fox.
正規表現をループして一致するものを記録することは解決策の 1 つですが、スケール (11 * 190000 * 10) を見ると、私のスクリプトはしばらく実行されています。私は自分の仕事でこれを何度も繰り返す必要があります。だから私はより効率的な方法を探していました。