拆分字符串帮助!按特定字符拆分文件但忽略带有正则表达式的java中引号中的字符串

时间:2012-01-27 19:33:24

标签: java regex string split

例如,我有一个这样的文件:

INT f2(INT x, INT y ) 
  BEGIN 
  z := x*x - y*y;
RETURN z; 
END 
INT MAIN f1() 
BEGIN
  INT x;
  READ(x, "A41.input");
  INT y;
  READ(y, "A42.input");
  INT z;
  z := f2(x,y) + f2(y,x);
  WRITE (z, "A4.output");

END

我使用以下方式打开文件:

 FileInputStream fstream = new FileInputStream("A1input.txt");
 DataInputStream in = new DataInputStream(fstream);
 BufferedReader br = new BufferedReader(new InputStreamReader(in));
 String strLine;

然后为了按字符分割每一行;或=我这样做了:

String[] SplitString = strLine.split("[\\s\\W]");

我想知道是否有办法使用正则表达式删除引号之间的单词(例如“A41.input”),这样我就可以在进行拆分之前一起忽略这些单词

1 个答案:

答案 0 :(得分:0)

因为它仍然是开放的,有两种可能性(多种可能性)

  • "\b.*?\b\W*\b.*?\b"
  • 要么  
  • ".*?"

    在java中转义反斜杠和双引号:

        String str = "READ(y, \"A42.input\");";
        System.out.println(str);
        String replacedFirst = str.replaceAll("\".*?\"", "\"\"");
        String replacedSecond = str.replaceAll("\"\\b.*?\\b\\W*\\b.*?\\b\"","\"\"");
        System.out.println(replacedFirst);
        System.out.println(replacedSecond);