2017-03-06 23 views
1

摆脱中国,我想摆脱那个只包含中国,韩国标签等如何在PostgreSQL

我发现下面列出与非ASCII字符线:

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

如何更改此列表只包含非ASCII字符的行?

+0

尝试'where col〜'^ [^ [:ascii:]] + $'' –

+0

肯定会找到一些,但我不认为它找到了全部。只有25条线,很确定还有更多的方法;可能需要空间? – Superdooperhero

+1

对不起,只有你有数据并可以指定要求。 '^ [^ [:ascii:]] + $'匹配由1个或多个非ASCII字符组成的字符串。 –

回答

1

看来你最重要的是匹配一个不包含指定字符的字符串。

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

所以,如果你需要匹配包含非ASCII字符的字符串只需要使用

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

注意^匹配字符串的开始,[^[:ascii:]]+比赛1+煤焦比ASCII和$火柴等字符串的结尾。

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

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