繁体   English   中英

分割字符串帮助! 用某些字符分割文件,但用正则表达式忽略Java引号中的字符串

[英]Split string help! Splitting a file by certain characters but ignoring strings in quotes in java with regex

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

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”),以便在进行拆分之前我可以完全忽略这些单词

因为它仍然开放,所以有两种可能性(很多)

  • "\\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); 
  • 暂无
    暂无

    声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM