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 
相關問題