Помощь в поиске и замене регулярных выражений - PullRequest
1 голос
/ 06 октября 2009

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

TAB WORD TAB PoS TRE 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 словом в строке.

Большое спасибо!

Ответы [ 4 ]

1 голос
/ 06 октября 2009

Я думаю, что Microsoft Excel может помочь вам лучше ...

Просто скопируйте весь текст в Excel, и он будет отформатирован как таблица, затем выберите нужные ячейки столбца для слова и, наконец, скопируйте их в блокнот.

Бьюсь об заклад, это самый простой путь.

Если в случае, когда Excel хранит все значения в одном столбце, в отдельном столбце извлеките слово с помощью:

= уравновешивание (ЛЕВЫЙ (С1, maxchar))

1 голос
/ 06 октября 2009

Нет необходимости использовать регулярное выражение для этого. Например, вы можете использовать cut:

cut -f1 <inputfile
1 голос
/ 06 октября 2009

Что-то вроде \s*([a-zA-z]+)\s*([a-zA-z]+) вернет слово и PoS в виде групп. Затем вы можете использовать их в операторе замены как $ 1 и $ 2 для вывода по своему желанию.

Если вам нужна только часть WORD, вы можете использовать $ 1 вместо.

1 голос
/ 06 октября 2009

Вы можете просто использовать awk, чтобы удалить первый столбец, как в

awk '{print $1}' /path/to/filename

Пропустить первую строку, используя

awk 'NR!=1 {print $1}' /path/to/filename
...