2015-01-08 4 views
-3

Я хочу пропустить некоторую строку из файла, если строка содержит определенное слово.Как пропустить строку с помощью Regex

Мой вход:

Report ID: XYZ 
Report Date: 8/1/2015 
Address : Hello 
-------------------------------------------------------------------- 
SNO Name Age 
-------------------------------------------------------------------- 
1 Shyam 28 
2 Ram  30 

Вывод должен быть:

Report ID: XYZ 
Report Date: 8/1/2015 
Address : Hello 
1 Shyam 28 
2 Ram  30 

Я попытался

.*[^--|BAT]* 

, но я не получаю соответствующий вывод.

Примечание. Я использую RegExHTML в Firefox для синтаксического анализа. Извините за упоминание в JAVA.

Любое руководство будет оценено по достоинству.

+0

Что регулярное выражение инструмент вы используете? – anubhava

+0

На каком языке вы работаете? –

+0

Я использую JAVA. – Viru

ответ

0
-+[\s\S]*?-+ 

Используйте замену вместо этого и заменить empty string .Увидь демо.

https://regex101.com/r/sH8aR8/31

Использование

-+[\\s\\S]*?-+ 

в случае Явы

0

Используйте dotall модификатор (?s), чтобы сделать точку в своем регулярном выражении, чтобы соответствовать даже разрывы строк.

String s = "Report ID: XYZ\n" + 
      "Report Date: 8/1/2015\n" + 
      "Address : Hello \n" + 
      "--------------------------------------------------------------------\n" + 
      "SNO Name Age\n" + 
      "--------------------------------------------------------------------\n" + 
      "1 Shyam 28\n" + 
      "2 Ram  30"; 
System.out.println(s.replaceAll("(?s)(?<=\n|^)-+.*?-\n","")); 

Выход:

Report ID: XYZ 
Report Date: 8/1/2015 
Address : Hello 
1 Shyam 28 
2 Ram  30 
Смежные вопросы