Regex 匹配时隙的正则表达式
我正在处理带有时间段的患者日日历 每小时分为两个相等的时段。 如果该人员在整个1小时内可用,则表示为11。 如果整小时不可用:00 仅适用于上半年:10。 仅适用于下半年:01 因此,患者的整个日历有48位数字 但现在,为了让事情变得简单,我们假设我们只从早上12点看到早上6点。 所以日历将是[01]{12} 假设患者在凌晨12点到凌晨3点以及凌晨4点到6点都有空。 现在他的日历可以标记为 111111001111 现在医生的日历也以类似的方式存储 现在假设预约窗口固定为1小时,我需要找到所有医生在患者的可用时间段内都有1小时的可用时间段 医生在患者可用时间之外的可用性无关紧要(在这种情况下是凌晨3点到4点) 基本上,我想写一个正则表达式来匹配所有这些Regex 匹配时隙的正则表达式,regex,Regex,我正在处理带有时间段的患者日日历 每小时分为两个相等的时段。 如果该人员在整个1小时内可用,则表示为11。 如果整小时不可用:00 仅适用于上半年:10。 仅适用于下半年:01 因此,患者的整个日历有48位数字 但现在,为了让事情变得简单,我们假设我们只从早上12点看到早上6点。 所以日历将是[01]{12} 假设患者在凌晨12点到凌晨3点以及凌晨4点到6点都有空。 现在他的日历可以标记为 111111001111 现在医生的日历也以类似的方式存储 现在假设预约窗口固定为1小时,我需要找到所有医
我试过(^([01]{2})(?=(?:[01]{0,2}11))([01]{4})^([01]{8})(?=(?:[01]{0,2}11))([01]{2}))但这是对任何医生的匹配,这些医生在患者的可用时间中没有任何空闲时间,但在早上6点之后也有任何1小时的空闲时间–以下似乎验证了从上午12点到早上6点的所有时间表,其中医生在中午12点到凌晨3点或凌晨4点到早上6点的时间段中至少有一小时可用:
^(?=(?:[01]{0,4}|[01]{8,10})11)[01]{12}$
在线查看
-起锚线^
-打开正向前瞻:(?=
-打开非捕获组以写出备选方案:(?:
-断言位置后跟0-4倍的零或一[01]{0,4}
-或:|
-断言位置后跟8-10倍的零或一[01]{8,10}
-关闭非捕获组)
-字面上匹配表示可用小时数的“11”11
-关闭正向前瞻)
-匹配零或1,精确匹配12次[01]{12}
-结束字符串锚定$
^(?=(?:[01]{0,4}|[01]{8,10})11)[01]{12}$
在线查看
-起锚线^
-打开正向前瞻:(?=
-打开非捕获组以写出备选方案:(?:
-断言位置后跟0-4倍的零或一[01]{0,4}
-或:|
-断言位置后跟8-10倍的零或一[01]{8,10}
-关闭非捕获组)
-字面上匹配表示可用小时数的“11”11
-关闭正向前瞻)
-匹配零或1,精确匹配12次[01]{12}
-结束字符串锚定$