データベースには、「150 W 96 Th St」および「4514 282 Nd St」に類似した値を含む列があります。お気付きかもしれませんが、通りの数字と接尾辞の間には '96 TH' のようにスペースがあります。
そのスペースを削除する postgresql クエリを作成しようとしています。以下を使用します。
SELECT regexp_matches('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ')
私は得る:
{" "}
キャプチャ グループのみが返されることを示します。
ただし、実行すると
SELECT regexp_replace('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ', '')
私は得る
150 WSt
一致する文字列全体が置き換えられます。
私も試してみました
SELECT regexp_replace('150 W 96 Th St', ' \d+( )(?:St|Nd|Rd|Th) ', '\1')
最初のキャプチャ グループを置き換えるだけだと思いました。
他に何を試す必要がありますか?