Regex для соответствия переменной длины, пробелов и специальных символов? - PullRequest
1 голос
/ 05 марта 2020

У меня есть такие строки, как:

2020-03-05 11:23:25: zone 10 type Interior name 'Study PIR'
2020-03-05 11:57:15: zone 13 type Entry/Exit 1 name 'Front Door'

У меня есть приведенное ниже регулярное выражение, которое работает для первой строки, однако я не уверен, как получить группу продуктов, соответствующую полному группа "Вход / Выход 1" Число может варьироваться от 1 до 100

(?<Date>[0-9]{4}-[0-2][1-9]-[0-2][1-9]) (?<Time>2[0-3]|[01][0-9]:[0-5][0-9]:[0-5][0-9]): (?<msgType>\w+) (?<id>[0-9]+) (?<type>\w+) (?<product>\w+) \w+ (?<deviceName>'([^']*)')

Есть идеи, как мне изменить это, чтобы соответствовать?

1 Ответ

1 голос
/ 05 марта 2020

Ваш product шаблон группы должен быть

(?<product>\w+(?:\/\w+\s+\d+)?)

См. Демонстрационный пример regex

Подробности

  • \w+ - 1+ слов символов
  • (?:\/\w+\s+\d+)? - необязательная последовательность
    • \/ - / char
    • \w+ - 1 + слово chars
    • \s+ - 1+ пробелов
    • \d+ - 1+ цифр.

Если формат неизвестен или не соответствует приведенному выше описанию, просто используйте (?<product>.*?), см. demo .

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