Помощь с поиском и заменой регулярных выражений
-
19-09-2019 - |
Вопрос
У меня есть текстовый файл, и каждая строка имеет вид:
TAB WORD TAB PoS TAB FREQ#
Word PoS Freq
the Det 61847
of Prep 29391
and Conj 26817
a Det 21626
in Prep 18214
to Inf 16284
it Pron 10875
is Verb 9982
to Prep 9343
was Verb 9236
I Pron 8875
for Prep 8412
that Conj 7308
you Pron 6954
Не мог бы кто-нибудь из вас, мастеров регулярных выражений, помочь мне изолировать СЛОВА из файла?Надеюсь, я сделаю поиск и замену в TextPad, и на этом все.Множественный поиск и замена — это нормально.Одна вещь:обратите внимание, что поиск по слову «глагол» также приведет к появлению СЛОВА «глагол», а не только части речи, поэтому будьте осторожны.В конце концов я хочу получить по 1 слову в строке.
Спасибо!
Решение
Я думаю, Microsoft Excel может помочь вам в этом лучше...
Просто скопируйте весь текст в Excel, и он будет отформатирован в виде таблицы, затем выберите соответствующие ячейки столбца для слова и, наконец, скопируйте их в блокнот.
Могу поспорить, что это самый простой путь.
Если в Excel все значения хранятся в одном столбце, в отдельном столбце извлеките слово следующим образом:
=Trim(LEFT(C1,maxchar))
Другие советы
Вы могли бы просто использовать awk
чтобы удалить первый столбец, как в
awk '{print $1}' /path/to/filename
Пропустите первую строку, используя
awk 'NR!=1 {print $1}' /path/to/filename
Для этого нет необходимости использовать регулярное выражение.Например, вы можете использовать cut
:
cut -f1 <inputfile
Что-то вроде \s*([a-zA-z]+)\s*([a-zA-z]+)
вернет слово и PoS как группы.Затем вы можете использовать их в операторе замены как $1 и $2 для вывода по своему усмотрению.
Если вам нужна только часть WORD, вы можете просто использовать $1 в замене.