2017-07-31 70 views
0

下面是从列表我一起工作的样本数据:如何找到不包含字符和空格的值?

74 
7491 
75 
75010 
75013 
78 
8081 
84 
8400 Winterthu 
852 
9000 Aalborg 
974 
A 
A CORUÑA 
aa 
Aalborg 
Aargau 
Aarhus 
aas 
AAT 
AB 
ABERC 
Abu Dhabi 
Abuja 
AC 
ACT 
AD 

使用[^\p{L}-]我可以得到一个列表,但它也包括我不想在列表中

Abu Dhabi 
Puerto Rico 
Hong Kong 

以下值我怎样才能做到这一点?

+0

看来你需要'^ [^ \ p {L} - ] + $' - 不包含字母和连字符的字符串。 –

+0

请让知道它是否有效,否则请说明规则。 –

回答

0

你想要找到多个项目,所以你必须使用g选项。

您将分别检查每行。对于这种情况构建的模式 通常是^...$,但^$ 都应该匹配每行的开始和结束,而不是整个字符串。 所以你必须使用m选项。

而最后一点,应该是什么候选人 行接受的内容,即应^$之间什么:任何不是 字母空序列的任何语言或文字,减,即[\p{L}-]+

所以,总结一下,整个正则表达式应该是:

/^[\p{L}-]+$/gm 

这种方式(如指定)包含空格(如波多黎各)名称将不会匹配 。

0

说你的文件是test.dat

grep A 1个简单的线条会给笏你想:

grep -o -P "[0-9]+$" test.dat 

输出:

74 
7491 
75 
75010 
75013 
78 
8081 
84 
852 
974 
相关问题