PostgreSQL - 如何在文本字段中查找特殊字符、空格、额外制表符和回车符?

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

我正在尝试检查 PostgreSQL 中的数据库列中的特殊字符、空格(多于一个空格)、额外制表符和回车符。我的想法是找到特殊字符,例如(例如,+,“,/,撇号等)。我想计算这些值出现的次数。我对 PostgreSQL 和正则表达式还很陌生。

例子,


roadmap/plan
Smith, Tom  (2 spaces after Tom)
applicant's
    see me (tab)
Q4  2024
FY2024+

到目前为止,我已尝试使用以下 SQL 来查找这些值。

select col1 from  table_name
where col1  ~*  '[^A-Za-z0-9&\(\)\| \''.-\\s*\s*|\s+y\s+]+';

但是,我正在找回我不关心的记录,比如是否有 .性格。

例子,

Dr. Tom Smith

我也试过:

select col1 from  table_name
where col1  ~* '[^A-Za-z0-9^\\''\-#+~_\t\r]';

我仍然找回我不关心的记录:

例子,

Q4 2024
Tom Smith

我的标准是找到:

  • 引号
  • 撇号
  • 加号
  • 额外的标签
  • 回车
  • 单词之间的空格
  • 反斜杠或正斜杠
  • 管道
  • 确保字母在 a-z 或 A-Z 之间,数字为 0-9

我缺少或需要从正则表达式中删除什么?

regex postgresql special-characters whitespace
1个回答
0
投票

空格是允许的,所以把它们放在你的字符类中,但要检查双空格:

where col1 ~* '[^A-Za-z0-9^\\''\-#+~_\t\r ]|  ';
© www.soinside.com 2019 - 2024. All rights reserved.