我想去掉只包含中文、韩文等的标签
我发现以下列出了包含非 ascii 字符的行:
select col from tablename where col ~ '[^[:ascii:]]';
如何将其更改为只包含非 ascii 字符的列表行?
最佳答案
看来对你来说最重要的是匹配一个不包含某些指定字符的字符串。
您需要首先识别您不想匹配的字符/范围,并将它们放入否定括号表达式中。
因此,如果您需要匹配包含非 ASCII 字符的字符串,您只需要使用
select col from tablename where col ~ '^[^[:ascii:]]+$';
注意 ^
匹配字符串的开头,[^[:ascii:]]+
匹配除 ASCII 和 $
之外的 1+ 个字符> 匹配字符串的结尾。
现在,如果您需要匹配不包含 ASCII 字母的条目,请将模式替换为 ^[^a-zA-Z]+$
。
如果您需要用 ASCII 字母/数字匹配条目,请使用 ^[^a-zA-Z0-9]+$
。
关于regex - 如何在 Postgresql 中去掉中文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42633730/