如何只使用由大写字符组成的单词

时间:2013-10-08 17:42:21

标签: regex grep

我有写grep的问题,只应该grep那些只包含大写字符的单词。

例如我有文件:file1.txt

Abc AAA
ADFSD
F
AAAAx

输出应该是:

Abc AAA
ADFSD
F

感谢您的任何建议。

7 个答案:

答案 0 :(得分:7)

这个egrep应该有效:

egrep '\b[A-Z]+\b' file

答案 1 :(得分:6)

你可以使用:

grep -E '\b[[:upper:]]+\b' file1.txt

也就是说,查找仅由大写字母组成的整个单词。

答案 2 :(得分:2)

这将产生所需的结果,

egrep '\b[A-Z]+\b'  file1.txt

结果

Abc AAA
ADFSD
F

答案 3 :(得分:1)

如果您的输入包含非ASCII字符,则可能需要使用\p{Lu}而不是[A-Z]

grep -P '\b\p{Lu}+\b' file

对于

LONDON 
Paris
MÜNCHEN Berlin

这将返回

LONDON
MÜNCHEN Berlin

您可以手动列出大部分内容,正如@ Skippy-le-grand-gourou所说,egrep将[A-Z]扩展为重音字母,但是使用\p{Lu},您不需要处理"Since June 2017, however, capital ẞ is accepted as an alternative in the all-caps style"

之类的事情

答案 4 :(得分:1)

HELLO

此结果由大写/数字/ _组成的单词(例如NUMBER10RLIMIT_DATAeDw)。

但是,这也接受With Sheets("xRef-Categories") Me.cboCategoryEdit1.List = .Range("A2" , .Range("A" & .Rows.Count).End(xlUp)).Value End With

答案 5 :(得分:0)

GNU grep支持POSIX模式,因此您只需执行以下操作:

grep -e '[[:upper:]]' file1.txt

答案 6 :(得分:0)

grep' \< [A-Z] *>' FILE1.TXT