Помощь с поиском и заменой регулярных выражений

StackOverflow https://stackoverflow.com/questions/1524251

Вопрос

У меня есть текстовый файл, и каждая строка имеет вид:

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 в замене.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top