Postgres正则表达式字符串匹配

时间:2017-02-08 20:39:42

标签: regex postgresql

我如何找到不包含数字后跟空格的地址记录? (例如,15SMith St.而不是15 Smith St)

WHERE a.address not like '.[0-9] .'

显然不适合我。

1 个答案:

答案 0 :(得分:2)

您可以将SIMILAR TONOT一起使用,并使用一种模式,即LIKE表示法和常用正则表达式表示符#34;之间的奇怪交叉。它支持[0-9]

  

括号表达式[...]指定一个字符类,就像在POSIX正则表达式中一样。

所以,你可以使用

WHERE a.address NOT SIMILAR TO '%[0-9] %'

此处,%匹配任意数量的字符,[0-9]匹配任何数字,空格匹配空格,然后%再匹配任意数量的字符。这些%是必需的,因为SIMILAR TO需要完整的字符串匹配,与LIKE相同。