Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在使用正则表达式查询Postgres DB中的字段之前,请删除该字段中的标点符号_Ruby On Rails_Regex_Ruby_Activerecord - Fatal编程技术网

Ruby on rails 在使用正则表达式查询Postgres DB中的字段之前,请删除该字段中的标点符号

Ruby on rails 在使用正则表达式查询Postgres DB中的字段之前,请删除该字段中的标点符号,ruby-on-rails,regex,ruby,activerecord,Ruby On Rails,Regex,Ruby,Activerecord,我找不到这个问题的答案,我真的在努力解决这个问题,所以非常感谢任何帮助 我有一张公司表,其中一家公司是“摩根大通银行,N.a.” 我想删除名称中的所有标点符号(因此“摩根大通银行,N.A.”变为“摩根大通银行NA”) 这是我得到的最接近的结果: Company.where("replace(name, '.', '') ILIKE ?", "JPMorgan Chase Bank, N A%") => [#<Company:0x00007ff8

我找不到这个问题的答案,我真的在努力解决这个问题,所以非常感谢任何帮助

我有一张公司表,其中一家公司是“摩根大通银行,N.a.”

我想删除名称中的所有标点符号(因此“摩根大通银行,N.A.”变为“摩根大通银行NA”)

这是我得到的最接近的结果:

Company.where("replace(name, '.', '') ILIKE ?", "JPMorgan Chase Bank, N A%")
=> [#<Company:0x00007ff8201f2b90 id: 25, name: "JPMorgan Chase Bank, N.A.", created_at: Mon, 31 May 2021 09:26:57 UTC +00:00, updated_at: Mon, 31 May 2021 09:26:57 UTC +00:00>]
我似乎不知道如何用单个字符替换一系列字符,明白了吗

Company.where("regexp_replace(name, '[[:punct:]]', '', 'g') ILIKE ?", "JPMorgan Chase Bank NA%")
我需要使用
regexp\u replace
,并且需要添加
g
作为它的最终参数

这是一个令人头痛的问题——我希望你已经找到了解决问题的办法

Company.where("regexp_replace(name, '[[:punct:]]', '', 'g') ILIKE ?", "JPMorgan Chase Bank NA%")