PostgreSQL-WHERE条件中的正则表达式
在我目前接触的工作中,正则表达式通常用于name字段的过滤。此处name字段定义为:纯文本,业务上一般对应姓名、名称之类的值。
示例1:
【功能】查询不是纯中文文本的字段值
【结果示例】abcde、abc de、123 4567 8910、12345678910、a一二三、TEST_测试01、abc/一二三、abc?de、一bc、(空格)一二三、一二三1、一/二、一二(三)、一(空格)二、一。
【业务场景】适用于查找不是纯中文字段值的业务场景
例如:删除某字段中非中文字段的值,首先要根据条件找出这些值。
AND NOT name ~ '^[\u4e00-\u9fa5]{0,}$'
示例2:
【功能】查询不含中文的字段值
【结果示例】abcde、abc de、123 4567 8910、12345678910、abc?de
【业务场景】适用于查找不含中文的字段值
例如:业务上允许用户名为类似‘用户1’、‘用户a’、‘用户 1’、‘用 户’的值,但不允许为纯数字、纯英文、纯标点符号或数字+英文+标点符号,此时可用正则表达式过滤。
AND NOT name ~ '[\u2e80-\ua4cf]|[\uf900-\ufaff]|[\ufe30-\ufe4f]'

浙公网安备 33010602011771号