Saya suka grep -v
. Saya menggunakannya sepanjang waktu. Tetapi saya juga melakukan beberapa pemrosesan teks dengan python, dan ada satu hal penting yang saya kekurangan.
Biasanya, saya menggunakan grep -v
untuk mengambil hal-hal asing dari teks.
Contohnya,
$ grep -v '[a-z]'
# (I manually review this output to confirm that I don't want those lines)
$ grep '[a-z]' > linesiwanted
Tapi bagaimana cara mencocokkan komplemen regex dengan Python? Misalnya, pelengkap dari \w
?
text-processing
grep
regular-expression
python
ixtmixilix
sumber
sumber
Jawaban:
Regex dengan Python, baik metode
search
ataumatch
, mengembalikanMatch
objek atauNone
. Untuk yanggrep -v
setara, Anda dapat menggunakan:Atau lebih ringkas:
sumber
Ternyata Anda bisa menggunakan [^ az] untuk maksud
grep -v [a-z]
.Saya menggunakannya seperti:
sumber
grep -v '[a-z]'
berarti "kecualikan setiap baris yang mengandung karakter dalam rentang daria
kez
" tetapi Anda telah mengimplementasikannyagrep '[^a-z]'
yang berarti "sertakan setiap baris yang mengandung karakter yang tidak dalam rentang daria
kez
." Jika suatu baris memiliki,abc123
maka kueri Anda akan mencetaknya secara keliru karena1
memenuhi kriteria itu.grep -v '[a-z]'
tidak akan mencetak baris ini karenaa
memenuhi kriteria yang dinegasikan.