如何正则表达式不同的开放时间格式?
How to regex different opening hours formats?
在我的数据库中,我有几种开放时间格式:
Mo, Di, Do, Fr 10:00-19:00, Mi 09:30-19:00, Sa 10:00-18:30
Mo-Fr 10:00-18:00, Sa 10:00-15:00, So 11:00-17:00
Mo - Fr 10:00 - 19:00, Sa 10:00 - 18:00
Mo-Mi 9:30-20:00, Do-Sa 9:30-22:00
Mo-Sa 09:00-20:00
我想要做的是对这种格式进行正则表达式,接下来我将能够将其存储在列表或地图中。
主要原因是将此对象转移到新的 Table,这是用示例条目定义的:
+----+--------+-------------+-------+-------+---------+---------+
| ID | ENTITY | DAY_OF_WEEK | OPEN | CLOSE | CREATED | UPDATED |
+----+--------+-------------+-------+-------+---------+---------+
| 1 | 1 <FK> | 1 | 36000 | 72000 | <date> | <date> |
| 2 | 1 <FK> | 2 | 28800 | 43200 | <date> | <date> |
| 3 | 1 <FK> | 2 | 50400 | 72000 | <date> | <date> |
+----+--------+-------------+-------+-------+---------+---------+
我想从实际格式中得到的可能是一张地图Map<String, List<String>>
,其中键是营业时间,值是字符串天数的列表。
首先,您可以使用
删除所有空格
s.replaceAll(" ", "");
然后你可以用一个数字前面的逗号分割字符串:
s.split("(?<=\d),");
然后,对于您在上一步中获得的数组的每个元素,您可以使用此正则表达式将信息分成天数部分和小时数部分:
(.*?)(\d{1,2}:\d{2})-(\d{1,2}:\d{2})
第 1 组将包含天数,第 2 组 - 开放时间,第 3 组 - 关闭时间。
那你可以试试用days来分析部分:
如果它包含一个逗号,然后用逗号分隔,你会得到天数列表
如果它包含 -
,则除以 -
,您将得到一周的开始和结束日期
在我的数据库中,我有几种开放时间格式:
Mo, Di, Do, Fr 10:00-19:00, Mi 09:30-19:00, Sa 10:00-18:30
Mo-Fr 10:00-18:00, Sa 10:00-15:00, So 11:00-17:00
Mo - Fr 10:00 - 19:00, Sa 10:00 - 18:00
Mo-Mi 9:30-20:00, Do-Sa 9:30-22:00
Mo-Sa 09:00-20:00
我想要做的是对这种格式进行正则表达式,接下来我将能够将其存储在列表或地图中。 主要原因是将此对象转移到新的 Table,这是用示例条目定义的:
+----+--------+-------------+-------+-------+---------+---------+
| ID | ENTITY | DAY_OF_WEEK | OPEN | CLOSE | CREATED | UPDATED |
+----+--------+-------------+-------+-------+---------+---------+
| 1 | 1 <FK> | 1 | 36000 | 72000 | <date> | <date> |
| 2 | 1 <FK> | 2 | 28800 | 43200 | <date> | <date> |
| 3 | 1 <FK> | 2 | 50400 | 72000 | <date> | <date> |
+----+--------+-------------+-------+-------+---------+---------+
我想从实际格式中得到的可能是一张地图Map<String, List<String>>
,其中键是营业时间,值是字符串天数的列表。
首先,您可以使用
删除所有空格s.replaceAll(" ", "");
然后你可以用一个数字前面的逗号分割字符串:
s.split("(?<=\d),");
然后,对于您在上一步中获得的数组的每个元素,您可以使用此正则表达式将信息分成天数部分和小时数部分:
(.*?)(\d{1,2}:\d{2})-(\d{1,2}:\d{2})
第 1 组将包含天数,第 2 组 - 开放时间,第 3 组 - 关闭时间。 那你可以试试用days来分析部分:
如果它包含一个逗号,然后用逗号分隔,你会得到天数列表
如果它包含
-
,则除以-
,您将得到一周的开始和结束日期