在换行后检查字符串是否以整数开头

时间:2015-05-17 14:57:24

标签: java regex string line-breaks

我正在使用Apache POI从.doc文件读入,因此,我有一个包含大量换行符的字符串的arraylist,以及原始文档格式的选项卡

我需要检查一个字符串,从中包含一个整数作为它的第一个字符。但是,字符串通常如下所示:

enter image description here

现在位置[3]的第一个字符串很好,即使它稍后包含一个整数,但位置[4]的字符串以\n\r\n5.2开头 因此从一个整数开始,是不可接受的,应该被忽略。 但是,我似乎无法找到一种检查其中一个字符串是否以整数开头的方法。我试图用java的

替换字符串中的所有\ n和\ r \ n
theString.replaceAll("\\\\n","");
theString.replaceAll("\\\\r","");

然而,这似乎失败了,我试图使用正则表达式确定使用子字符串,如果字符串本身以整数开头无效,因为标签和换行符的数量不同。

有没有人为什么我可以确定字符串(在所有换行符和制表符之后)是否以整数开头?

第二个例子:

enter image description here

正在使用的代码:

tempLineBreakRemoval = listoflines.get(x);
    tempLineBreakRemoval = tempLineBreakRemoval.replaceAll("\\\n", "");
   //Selection Statement to only add to "tempCommentString" if does not start with integer
    tempCommentString += listoflines.get(x);
    x++;

1 个答案:

答案 0 :(得分:0)

解析特殊字符后,\\\\n\\n一次。因此,如果您希望\\n\n字符\和字母n,则必须使用'\n'。这对replaceAll来说是正确的。对于需要角色的替换,您甚至必须直接使用\r\ttheString.matches("\\s*\\d.*");相同。

但是我更喜欢单一的正则表达式。此调用应执行此操作:\s\d代表任何数字的任何空白字符.,代表任何其他结尾字符的{{1}}。