以下是我正在使用的列表中的示例数据:
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 :(得分:0)
您想要找到多个项,因此您必须使用g
选项。
您将分别检查每一行。通常的方式模式
对于此类案例构建的是^...$
,但^
和$
都是m
应匹配每行的开头和结尾,而不是整个字符串。
因此,您必须使用^
选项。
最后一点,应该是候选人接受的内容
行,即$
和[\p{L}-]+
之间应该是什么:任何非空的序列
任何语言或字面减去的字母,即/^[\p{L}-]+$/gm
。
所以,总而言之,整个正则表达式应该是:
String needlLength = bf.readLine().trim();
if(needlLength == null || needlLength.equals(""))
break;
这样,包含空格的名称(例如 Puerto Rico )将不会匹配 (如您所指定)。
答案 1 :(得分:0)
说你的文件是test.dat
grep
中的1个简单行将为您提供所需的视频:
grep -o -P "[0-9]+$" test.dat
输出:
74
7491
75
75010
75013
78
8081
84
852
974