【问题标题】:Assistance with Find and Replace Regex协助查找和替换正则表达式
【发布时间】:2009-10-06 08:17:32
【问题描述】:

我有一个文本文件,每一行的格式为:

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 个单词结束。

非常感谢!

【问题讨论】:

    标签: regex frequency linguistics corpus


    【解决方案1】:

    我认为 microsoft excel 可以更好地帮助您...

    只需将整个文本复制到excel上,它将被格式化为表格,然后继续为单词选择适当的列单元格,最后将它们复制到记事本上。

    我敢打赌这是最简单的路径。

    如果 excel 将所有值存储在单个列中,则在单独的列中提取单词:

    =修剪(LEFT(C1,maxchar))

    【讨论】:

    • 好主意...您经常忘记最简单的工具!
    【解决方案2】:

    您可以使用awk 删除第一列,如

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

    使用跳过第一行

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

    【讨论】:

      【解决方案3】:

      实际上没有必要为此使用正则表达式。例如,您可以使用cut

      cut -f1 <inputfile
      

      【讨论】:

        【解决方案4】:

        \s*([a-zA-z]+)\s*([a-zA-z]+) 之类的东西会将单词和 PoS 作为组返回。然后,您可以在替换语句中将它们用作 $1 和 $2 以根据需要进行输出。

        如果您只想要 WORD 部分,您可以在替换中使用 $1。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 2015-03-25
          • 2011-06-16
          • 1970-01-01
          • 2017-01-28
          • 2015-01-11
          相关资源
          最近更新 更多