Как получить строки до пустой новой строки - PullRequest
0 голосов
/ 07 мая 2020

Я хочу получить blo c строк, содержащих оператор <или>, пока не появится пустая новая строка

Я пытаюсь использовать это регулярное выражение .*[<>][^,\r\n]+?\(.*\S.*,.*\S.*\).*(?:(\n).*)

Здесь вы найдете мой пример: https://regex101.com/r/UQYLB5/1/

Ожидаемый результат:

MATCH 1 : 
BAR18>17M(3,5.2)V 

MATCH 2 : 
BAR19>1.243037M(3,5.2)V 
INFORMATION PROCESS
TAKE B/F: 19V[1]
LIGHT PC CARD: 

MATCH 3 :
TEFAL17>1.262259M(4.5,5.5)V 
SISS17 : 1789-ID
LIGHT 19/17
MAPPING NICE :

MATCH 4 : 
MASCARPONE19>493.818969M(3,5.2)V 
BATA17 : CDER78945 -- 1875
LEFT ERREUR - CAME BACK 

MATCH 5 :
REPAR_178>748.515487M(4.5,5.5)V 
CHAN1 / STEREO MIX

1 Ответ

1 голос
/ 07 мая 2020

Если вы не хотите сопоставлять строки, которые могут состоять только из пробелов, вы можете использовать сопоставление < или > и сопоставить хотя бы один символ без пробелов \S в следующих строках:

^[^<>\r\n]*[<>].*(?:\r?\n[^\r\n\S]*\S.*)*

Соответствует шаблону:

  • ^ Начало строки
  • [^<>\r\n]* Соответствует любому символу, кроме < `
  • [<>].* Соответствует < или > и остальной части строки
  • (?: Группа без захвата
    • \r?\n Соответствует новой строке
    • [^\r\n\S]* Сопоставить любой символ, кроме символа новой строки
    • \S.* Сопоставить символ без пробелов и остальную часть строки
  • )* Закройте группу и повторите 0+ раз

Regex demo

Если первая строка также должна содержать , после сопоставления < или >:

^[^<>\r\n]*[<>][^\r\n,]*,.*(?:\r?\n[^\r\n\S]*\S.*)*

Демонстрация Regex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...