Сплит строка поможет! Разделение файла по определенным символам, но игнорирование строк в кавычках в Java с помощью регулярных выражений - PullRequest
0 голосов
/ 27 января 2012

например, у меня есть файл, подобный этому:

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 голосов
/ 12 декабря 2012

Поскольку он все еще открыт, две возможности (из многих)

"\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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...