带偏移量的正则表达式匹配时区标签

Regular expression matching timezone label with offset

我很少使用正则表达式,现在我想使用正则表达式来验证时区条目。这些条目保存在数据库中,仅使用偏移值。

以下是有效条目:

Australian Central Time ( GMT+10:30 )
London - Greenwich Mean Time ( GMT+00:00 )
Beijing, Hong Kong (GMT+08:00)
Japan Standard Time (GMT+09:00)
Pacific Daylight Time (GMT-07:00 )
Pacific Standard Time (GMT-08:00)
Singapore Time( GMT+08:00)
Europe Time +1 (GMT+01:00)

我想要的是检查条目格式是否类似于: Any words and characters here like above( GMT+08:00)。 GMT、-/+、2 位小时、:、2 位分钟是固定的。 () 可以有空格。

以下是无效条目:

Europe Time GMT+01:00
GMT+02:00
(GMT+01:30)
Hello
Philippines
Singapore Time (GMT + 08:00)
Singapore Time (GMT+8:0)
Singapore Time (UTC+08:00)

这是我尝试过的,但与我想要的相去甚远: ^[\w\s\+,-]+[\(\s]+[GMT]+[-\+]+[\d{2}]+[:]+[\d{2}]+[\)\s]+

感谢@sleepwalk 的回答,我只是稍微调整了一下以适应我的需要。

.+\(\s*GMT+[+-]+\d{1,2}:\d{2}\s*\)\s*

我想这就是你想要的

.*\(\s*GMT\s*[+-]?\s*\d{1,2}:\d{2}\s*\)\s*

您可以在此处测试您的正则表达式 https://regexr.com/