如何在 PostgreSQL 中的给定字符串中查找非 ASCII(其他语言)的字母序列?例如,可以使用“[A-Za-z]”来匹配 ASCII 字母。
在 SQL Server 中,'A' 和 'Z' 之间的 @ch 匹配 Ñ、ü、Ä 等字符。
在 PostgreSQL 中,正则表达式和字符类可用于匹配给定字符串中的非 ASCII 字母。尝试运行以下查询以从表中提取行,其中“your_column”中存在非 ASCII 字母表中的一个或多个字符。对于您的特定情况,请根据需要更改表和列名称。
SELECT *
FROM your_table
WHERE your_column ~ '\p{L}';
希望对你有帮助:)
这取决于您使用的排序规则。对于大多数自然语言排序规则,比较是有效的:
SELECT 'ñ' COLLATE "en-US-x-icu" BETWEEN 'A' AND 'Z';
?column?
══════════
t
(1 row)
检查字符串是否仅包含字母字符的最简单方法是正则表达式:
SELECT NOT '中文µxY' COLLATE "de_AT.utf8" ~ '[^[:alpha:]]';
?column?
══════════
t
(1 row)
SELECT NOT 'a+b' COLLATE "de_AT.utf8" ~ '[^[:alpha:]]';
?column?
══════════
f
(1 row)