Tag: 模式匹配

使用Java过滤掉CSV文件中的数字

我是新来的CSVparsing。 我有一个CSV文件,第三列(描述字段)可能有一个或多个6位数字以及其他值。 我需要过滤出这些数字,并将其写入每行对应的相邻列。 例如: 3rd column 4th column ============= =========== 123456adjfghviu77 123456 shgdasd234567 234567 123456abc:de234567:c567890d 123456-234567-567890 12654352474 请帮忙。 这是我迄今为止所做的。 String strFile="D:/Input.csv"; CSVReader reader=new CSVReader(new FileReader(strFile)); String[] nextline; //int lineNumber=0; String str="^[\\d|\\s]{5}$"; String regex="[^\\d]+"; FileWriter fw = new FileWriter("D:/Output.csv"); PrintWriter pw = new PrintWriter(fw); while((nextline=reader.readNext())!=null){ //lineNumber++; //System.out.println("Line : "+lineNumber); if(nextline[2].toString().matches(str)){ pw.print(nextline[1]); pw.append('\n'); System.out.println(nextline[2]); } } pw.flush();

将string拆分成具有特定模式和条件的部分

我有如下几个5k +string的数组作为某些应用程序的输出(出于安全原因,我可能不提供确切的数据,但示例格式与实际数据非常相似): kasdfhkasdhfaskdfj42345sdsadkfdkfhasdf5345534askfhsad asdfasdf66sdafsdfsdf4560sdfasdfasdf sdfaasdfs96sadfasdf65459asdfasdf sadfasdf8asdfasdas06666654asdfasdfsd fasdjfsdjfhgasdf6456sadfasdfasdf9sdfasdfsadf 简单地说,我有非破坏性的字母数字string,由5个部分组成 : [latin letters][1 or more digits][latin letters][1 or more digits][latin letters] 字母部分的长度,以及数字的数量是随机的,整个string的长度可以从几个变化到2-3 个字符,但是模式仍然如上。 实际上,我对前导string和尾随string部分很感兴趣,即[1 or more digits][latin letters][1 or more digits]可能被丢弃,但另外2个string应该被提取以分隔单元格。 我尝试了SUBSTITUTE和SEARCHfunction,但是我仍然可能无法处理随机数字的数字。 VBA是最后期望的方法,但是如果纯粹的公式是无用的,则是可以接受的。 此外,解决scheme应该是灵活的,以便将来可能使用类似的模式 – 所以任何正确的指导/一般方法将不胜感激。