Me gusta grep -v. Lo uso todo el tiempo. Pero también estoy procesando texto en Python, y hay una cosa crucial que me falta.
Por lo general, grep -vsuelo sacar cosas extrañas del texto.
Por ejemplo,
$ grep -v '[a-z]'
# (I manually review this output to confirm that I don't want those lines)
$ grep '[a-z]' > linesiwanted
Pero, ¿cómo combino el complemento de una expresión regular en Python? Por ejemplo, el complemento de \w?
text-processing
grep
regular-expression
python
ixtmixilix
fuente
fuente

Respuestas:
Una expresión regular en Python, ya sea el método
searchomatch, devuelve unMatchobjeto oNone. Para elgrep -vequivalente, puede usar:O más concisamente:
fuente
Resulta que puedes usar [^ az] para significar
grep -v [a-z].Lo estoy usando como:
fuente
grep -v '[a-z]'significa "excluir cualquier línea que contenga un carácter en el rango deaaz" pero ha implementado logrep '[^a-z]'que significa "incluir cualquier línea que contenga un carácter que no esté en el rango deaaz". Si tiene una líneaabc123, su consulta la imprimirá erróneamente porque1satisface ese criterio.grep -v '[a-z]'no imprimirá esta línea porqueasatisface los criterios negados.