わかりましたgrep -v
。いつも使っています。しかし、私はPythonでいくつかのテキスト処理も行っていますが、重要なものを見逃しています。
grep -v
通常私はテキストから無関係な内容を切り取る習慣を持っています。
例えば、
$ grep -v '[a-z]'
# (I manually review this output to confirm that I don't want those lines)
$ grep '[a-z]' > linesiwanted
しかし、Pythonで正規表現の補数をどのように一致させるのですか?たとえば、\w
? の補数です。
ベストアンサー1
Pythonの正規表現は、search
orメソッドに関係なくorオブジェクトmatch
を返します。これに対応する場合は、次のものを使用できます。Match
None
grep -v
import re
for line in sys.stdin:
if re.search(r'[a-z]', line) is None:
sys.stdout.write(line)
またはもっと簡潔に言えば:
import re; sys.stdout.writelines([line for line in sys.stdin if re.search(r'[a-z]', line) is None])