Отфильтруйте содержимое, но не удаляйте найденную группу - PullRequest
0 голосов
/ 22 мая 2019

Я создал регулярное выражение, но оно не работает так, как мне нужно, и я не могу создать его так, как мне нужно.

REGEX:

\[(.*?)\]

Текст

[25/03/2018 11:00:28] USER 1: TESTE 1
[25/03/2018 11:12:21] USER 2: TESTE 2
[25/03/2018 11:13:21] USER 3: TESTE 3

Результат этого регулярного выражения

---------
 USER 1: TESTE 1
---------
 USER 2: TESTE 2
---------
 USER 3: TESTE 3

Я хотел изменить регулярное выражение, чтобы результат был таким же, как тот, который я покажу ниже, но я пытался и не могу. Может кто-нибудь дать мне подсказку? Спасибо.

---------
 25/03/2018 11:00:28 | USER 1: TESTE 1
---------
 25/03/2018 11:12:21 | USER 2: TESTE 2
---------
 25/03/2018 11:13:21 | USER 3: TESTE 3

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Если питон:

re.sub('\[(.*?)\]', r'\1 |', '[25/03/2018 11:00:28] USER 1: TESTE 1')

Возвращает

25/03/2018 11:00:28 | USER 1: TESTE 1
0 голосов
/ 22 мая 2019

Вы можете заменить совпадение обратной ссылкой на Группу 1 + пробел + | char.

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

str = Regex.Replace(str, @"\[([^][]*)]", "$1 |");

См. это демо .NET regex .

Регулярное выражение \[([^][]*)] соответствует [...] подстрокам без [ и ] внутри них и работает немного быстрее, чем шаблон с отложенными точками.

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