如何在Postgresql中摆脱中文

时间:2017-03-06 19:12:41

标签: regex postgresql

我想摆脱只包含中文,韩文等的标签

我发现以下内容列出了带有非ascii字符的行:

select col from tablename where col ~ '[^[:ascii:]]';

如何更改此选项以列出仅包含非ascii字符的行?

1 个答案:

答案 0 :(得分:2)

对您而言,最重要的是匹配不包含某些指定字符的字符串。

您需要首先确定您不想匹配的字符/范围,并将它们放入否定的括号表达式中。

因此,如果您需要匹配包含非ASCII字符的字符串,则只需使用

select col from tablename where col ~ '^[^[:ascii:]]+$';

请注意,^匹配字符串的开头,[^[:ascii:]]+匹配除ASCII以外的1 +个字符,$匹配字符串的结尾。

现在,如果您需要匹配不包含ASCII字母的条目,请将模式替换为^[^a-zA-Z]+$

如果您需要使用ASCII字母/数字匹配条目,请使用^[^a-zA-Z0-9]+$