正则表达式的快速问题

时间:2010-02-12 21:52:28

标签: regex grep

我有一个单词列表,但它有一些像东方的

我需要从单词列表中找到单词,只包含a-z和A-Z。怎么做。

我正在使用grep。我应该在grep之后放什么

grep *** myfile.txt

谢谢!

6 个答案:

答案 0 :(得分:2)

你想要的正则表达式是^ [a-zA-Z] + $

对于grep:

vinko@parrot:~$ more a.txt
Hi
Hi Dude
Hi's
vinko@parrot:~$ egrep ^[a-zA-Z]+$ a.txt
Hi

在伪代码中:

 regexp = "^[a-zA-Z]+$";
 foreach word in list
      if regexp.matches(word)
          do_something_with(word)

答案 1 :(得分:1)

grep语法是:

grep '^[[:alpha:]]\+$' input.txt

grep模式语法的文档是here

答案 2 :(得分:0)

[a-z]+

使用不区分大小写的选项,或

[A-Za-z]+

没有不区分大小写的选项。

发布数据和语言以获得更多帮助。

表示grep

egrep -i '^[a-z]+$' wordlist.dat

我不记得metachars需要逃脱的东西,如果它不起作用,请尝试\ [a-z \] \ +或任何类似的组合!

答案 3 :(得分:0)

如果要与单词列表匹配,请使用fgrep

fgrep word_list_file myfile.txt

答案 4 :(得分:0)

GNU grep

grep -wEo "[[:alpha:]]+" file

答案 5 :(得分:0)

或过滤掉包含funnies的所有单词

grep -v '[^a-zA-Z]'
最短的答案有奖吗? :)

请注意[[:alpha:]]和[A-Za-z]之间存在可移植性差异。 [A-Za-z]适用于更多版本的grep,但[[:alpha:]]考虑了宽字符环境和国际化(例如当它们包含在语言环境中时带有重音字符)。

相关问题