2017-03-06 29 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]+$