rob*_*ert 6 regex postgresql unicode
如何编写正则表达式来匹配postgres中的'José'等名称.换句话说,我需要设置一个约束来检查是否只输入了有效名称,但是也想要允许unicode字符.
正则表达式,unicode样式对此有一些参考.但是,似乎我不能用postgres写它.
如果无法为此编写正则表达式,仅使用javascript检查客户端就足够了
PostgreSQL 不像 .NET 那样支持基于 Unicode 字符数据库的字符类。您将获得更标准的[[:alpha:]]字符类,但这取决于区域设置,并且可能不会涵盖它。
您也许可以将不需要的 ASCII 字符列入黑名单,并允许所有非 ASCII 字符。例如类似的东西
[^\s!"#$%&'()*+,\-./:;<=>?\[\\\]^_`~]+
Run Code Online (Sandbox Code Playgroud)
(JavaScript 也没有非 ASCII 字符类。甚至也没有[[:alpha:]]。)
例如,v_text作为要清理的文本变量给出:
-- Allow internationalized text characters and remove undesired characters
v_text = regexp_replace( lower(trim(v_text)), '[!"#$%&()*+,./:;<=>?\[\\\]\^_\|~]+', '', 'g' );
Run Code Online (Sandbox Code Playgroud)