如何在 PostgreSQL 中匹配不同语言的字母?

问题描述 投票:0回答:2

如何在 PostgreSQL 中的给定字符串中查找非 ASCII(其他语言)的字母序列?例如,可以使用“[A-Za-z]”来匹配 ASCII 字母。

在 SQL Server 中,'A' 和 'Z' 之间的 @ch 匹配 Ñ、ü、Ä 等字符。

postgresql non-ascii-characters
2个回答
0
投票

在 PostgreSQL 中,正则表达式和字符类可用于匹配给定字符串中的非 ASCII 字母。尝试运行以下查询以从表中提取行,其中“your_column”中存在非 ASCII 字母表中的一个或多个字符。对于您的特定情况,请根据需要更改表和列名称。

SELECT *
FROM your_table
WHERE your_column ~ '\p{L}';

希望对你有帮助:)


0
投票

这取决于您使用的排序规则。对于大多数自然语言排序规则,比较是有效的:

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)
© www.soinside.com 2019 - 2024. All rights reserved.