有人帮助我 我有一个包含以下
的文件a // true
тодорхойгүй гишүүн\n // false
ямар нэг // false
нэгэн // false
a good deal // true
нэлээн // false
a long face // true
уруу царай // false
...
我的java代码
while ((strLine = br.readLine()) != null) {
// string from file
Pattern pattern = Pattern.compile("[\\sa-zA-Z]{1,}");
Matcher matcher = pattern.matcher(strLine);
if (matcher.matches()) {
System.out.print(true+ "\n");
} else {
System.out.print(false + "\n");
}
}
输出
false // there is problem this line must true
false
false
false
true
false
true
false
为什么第一次不匹配。
I inserted blank line into start of file then output
false
true // this line was false before i insert blank line
false
false
false
true
false
true
false
答案 0 :(得分:2)
很奇怪。您可能希望尝试使用hexdump仔细检查文件的前几行:
head -2 file | hexdump -C
这应该告诉你行的开头确切的字节数。
答案 1 :(得分:0)
你试过[\ sa-zA-Z] +
吗?答案 2 :(得分:0)
前两行
a
тодорхойгүй гишүүн
hexdump都
0000-0010: ef bb bf 61-0d 0a d1 82-d0 be d0 b4-d0 be d1 80 ...a.... ........
0000-0020: d1 85 d0 be-d0 b9 d0 b3-d2 af d0 b9-20 d0 b3 d0 ........ ........
0000-0029: b8 d1 88 d2-af d2 af d0-bd ........ .
答案 3 :(得分:0)
我通过删除前三个非ascii代码解决了这个问题。