mysql正则表达式中文匹配问题

背景:匹配财产描述是否包含日期范围

示例:

重药控股吉林省天华医药有限公司在编号为XSHT-03-2021-612的<<销售合同>>项下,基于/在
 2022年04月27日至2022年05月24日因履行合同义务而对辽源市妇婴医院产生的应收账款,金额
 为人民币854,625.34元, 其他信息可详见附件。

正常正则表达式写法:[0-9]{4}[\-/年][0-9]{2}[\-/月][0-9]{2}[日]?(\-至到)[0-9]{4}[\-/年][0-9]{2}[\-/月][0-9]{2}

匹配结果:不匹配

mysql正则表达式中文匹配问题_第1张图片

 原因分析:mysql "[...]"括号匹配不支持中文,需要改成"(|||)"

修改正则表达式如下:[0-9]{4}(\-|/|年)[0-9]{2}(\-|/|月)[0-9]{2}(日)?(\-|至|到)[0-9]{4}(\-|/|年)[0-9]{2}(\-|/|月)[0-9]{2}

匹配结果:匹配

mysql正则表达式中文匹配问题_第2张图片

 

你可能感兴趣的:(SQL,mysql,REGEXP,正则表达式,中文,不匹配)