Regex, найдите часовой пояс за исключением часового пояса UT C, когда оба доступны - PullRequest
0 голосов
/ 16 апреля 2020

Я прошел через много вопросов на этом сайте, но пока не нашел решения.

Я работаю над механизмом автоматизации, который должен автоматически читать электронные письма. Эти электронные письма содержат как UT C, так и местное время в теле сообщения, и мне нужно выбрать только не UT C время для дальнейшей обработки.

Ниже приведен пример содержимого тела письма. Регулярное выражение, которое я пробовал, возвращает оба часовых пояса:

String (тело сообщения) :

Date/ Time 1 (SGT): 05-Jan-2020 01:00 - 05-Jan-2020 05:00

Date/ Time 1 (UTC): 04-Jan-2020 17:00 - 04-Jan-2020 21:00

Regex :

Date\s{0,}\/\s{0,}Time.*\((?<TimeZone>\w{3})\)\s{0,}:\s{0,}(?<StartDate>\d{2}-\w{3}-\d{4}\s{1,}\d{1,2}:\d{2})\s{0,}-\s{0,}(?<EndDate>\d{2}-\w{3}-\d{4}\s{1,}\d{1,2}:\d{2})

Как выбрать только время из строки, которая не является UT C время.

1 Ответ

1 голос
/ 16 апреля 2020

Вы можете попробовать следующий шаблон регулярных выражений:

^Date/ Time \d+ \((?!UTC\b).*?\): .*$

Демо

Не так много объяснений, кроме этого термина: \((?!UTC\b).*?\):

Это будет соответствовать любому часовому поясу в скобках, кроме UT C.

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