我有一个非常大的字符串。可以在这里看到: http://pastebin.com/vqXJ3WV6
我想使用正则表达式3.8拆分此字符串 当我使用记事本搜索此字符串时,我发现3.8的两个实例。 因此,我希望返回的数组的长度为3。
System.err.println(convertPdfToText(save).split("3.8").length);
但是,使用convertPdfToText调用此字符串获取此字符串的长度为4?
我根本不明白这一点。任何人都可以告诉我发生了什么,因为这会大大改变我的程序的行为。
提前致谢
答案 0 :(得分:3)
.
字符是正则表达式中的特殊字符,字面意思是“任何字符”。所以你基本上都在寻找3[anything]8
,快速的正则表达式搜索显示确实有3个匹配。两个是您实际需要的有效“3.8”字符串。您的意外匹配位于此字符串的末尾:
3.4 Unit 3: Spanish speaking 46953 8
解决方案只是使用.
文字,而不是使用反斜杠转义字符:
System.err.println(convertPdfToText(save).split("3\\.8").length);