regex - 如何在 Postgresql 中去掉中文

标签 regex postgresql

我想去掉只包含中文、韩文等的标签

我发现以下列出了包含非 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/

相关文章:

当立即序列不匹配时,Java 使用 Matcher 失败

mysql - 每个搜索词显示一行,如果找不到则替换为默认值

postgresql - 如何列出为 postgres 中的表创建的索引

regex - 在存储过程中转义 Postgres 8.4 中的 LIKE 模式或正则表达式字符串

javascript - 这三个正则表达式有效吗?

php - 从正则表达式中得到错误 'repetition-operator operand invalid' - mysql

c++ - 无法弄清楚为什么正则表达式不起作用

java - 一个正则表达式问题

postgresql - Enterprise Architect 在表名中生成不带引号的 SQL

postgresql - 从可更新 View 返回数据不起作用?