Получить конец строки с помощью регулярного выражения - PullRequest
0 голосов
/ 18 октября 2019

Мне нужно разделить строки строк, и до сих пор я дошел до того, что мне нужно закончить их. И вот где моя проблема.

Мое регулярное выражение выглядит так:

//these work fine
$firstRegex = "/^\w{3}\s+\d\s\d{2}:\d{2}:\d{2}/i";
$secondRegex = "/\w{1,}\s\w{4}\[\d{4}\]/i";
$thirdRegex = "/\w{1,}\(.*?\)/";
//this is the incorrect regex
$fourthRegex = "/(\w+\s+)+\(.*\)$/";

Вот некоторые строки, для которых мне нужно это регулярное выражение:

6 октября 15:39:01 linux_server CRON [5921]: pam_unix (cron: сессия): сеанс, открытый для пользователя root с помощью (uid = 0)

6 октября 15:39:01 linux_server CRON [5921]: pam_unix (cron: сессия): сеанс закрыт для пользователя root

Они должны быть в скобках или без них. Мой результат:

6 октября 15:39:01 linux_server CRON [5921] pam_unix (cron: сессия)

6 октября 15:39:01 linux_server CRON [5921] pam_unix (cron: сессия)

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Для этого вам придется использовать позитивный взгляд, я пытаюсь сопоставить все следующие символы):

(?<=\)\:).*

Вы можете использовать regexr.com для работы срегулярное выражение.

0 голосов
/ 18 октября 2019

Попробуйте Regex: ^(\w{3} \d{1,2}\s\d{2}:\d{2}:\d{2}) (\w+) (\w{4}\[\d{4}\]): (\w+?\(.*?\)): ([\w ]+)(\(.*?\))?$

Демо

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