我想要一个regexp来匹配部分工作日的名字。例如,我想要匹配“星期四”,“嘟嘟”,"thur“或”清华“。我试过“清华(Rsday)?”,但那只是与“清华”和“周四”相匹配。与缩短的工作日相匹配的完整正则表达式将过长。我试过这个regex字符串:
Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(rsday)?|Fri(day)?|Sat(urday)?|Sun(day)?
我的字符串如下所示:
下午1:00-12月1日下午1:00 十二月四日晚上八时十分U16 USPHLSk3-红色 6-12月1日下午1:00
发布于 2018-12-05 21:48:26
在Oracle中,我会在希望选择字符串与工作日匹配的位置进行此操作。我怀疑您可以调整正则表达式以适应您的环境:
with tbl(str) as (
select '3-Dec Mon 1:00pm Premiere USPHL Sk3-Red' from dual union all
select '4-Dec Tues 8:10pm U16 USPHL Sk3-Red' from dual union all
select '6-Dec Thursday 1:00pm Premiere USPHL Sk3-Red' from dual
)
select str
from tbl
where regexp_like(str, ' (mon|tue(s)?|wed(nes)?|Thu(r)?(s)?|fri|sat(ur)?|sun)(day)? ', 'i');发布于 2018-12-08 00:55:40
好的,谢谢你的帮助。最后我得到了这个regexp:
(?i)((mon|tue(s)?|wed((((n)?e)?s)?)?|thu(r)?(s)?|fri|sat(ur)?|sun)(day)?)
比我想的要复杂一些,但很有效。我的代码中需要大量的注释;-)
https://stackoverflow.com/questions/53640989
复制相似问题