Мне нравится 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
?
text-processing
grep
regular-expression
python
ixtmixilix
источник
источник
Ответы:
Регулярное выражение в Python,
search
илиmatch
методы или , возвращаетMatch
объект илиNone
. Дляgrep -v
эквивалента вы можете использовать:Или более кратко:
источник
Оказывается, вы можете просто использовать [^ az] для обозначения
grep -v [a-z]
.Я использую это как:
источник
grep -v '[a-z]'
означает «исключить любую строку , содержащую символ в диапазоне отa
доz
» , но вы реализовали ,grep '[^a-z]'
который означает «включают в себя любую строку , содержащую символ не в диапазоне отa
доz
.» Если строка имеет,abc123
то ваш запрос будет ошибочно печатать ее, потому что1
удовлетворяет этим критериям.grep -v '[a-z]'
не будет печатать эту строку, потому чтоa
удовлетворяет отрицательным критериям.