У меня есть текстовый файл и с помощью Notepad++. У меня есть входные строки, как показано ниже (с новой строкой и без заданного шаблона), и я хочу извлечь число до T и вывести числа в виде разделителей.

вход

(1745817T OR 1745818T OR 1745820T OR 1745819T) AND NOT (1786717T)
(3406379T OR 3410183T OR 3414397T OR 3272288T OR 3348134T OR 3379438T OR 3348136T OR 3420508T OR 3420503T OR 3420511T OR 3420504T OR 3420505T OR 3420507T OR 3420512T)

Выход

1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512

Пожалуйста, помогите с тем, как извлечь эту строку из строк. С уважением, Ашиш

1 ответ1

3

Изменить, в соответствии с изменением запроса:

  • Ctrl+H
  • Найти что: ([()])|T[^\d\r\n]+(\R)?
  • Заменить на: (?1:(?2$2:|))
  • проверить обернуть
  • проверьте регулярное выражение
  • Заменить все

Объяснение:

    ([()])      : group 1, open or close parenthesis
  |             : OR
    T           : the letter T
    [^\d\r\n]+  : 1 or more any character that is not a digit or linebreak
    (\R)?       : group 2, a line break, optional

Замена:

(?1:            : conditionnal replacement, 
                    if group 1 exists replace with nothing
  (?2$2:|)      : conditionnal replacement, 
                    if group 2 exists let it at same place
                    else replace with pipe |
)

Результат для данного примера:

1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .