2

如果列包含字母数字以外的特殊字符,我需要获取它的值。

前任:select name from data;

name

ACD12
A12DD
A_C12
A@CD
AB_M1
123AB

我需要编写一个正则表达式来从上表中获取以下数据:

A_C12
A@CD
AB_M1
4

1 回答 1

3

您需要一个表示“任何包含至少一个非字母数字字符的字符串”的表达式:

SELECT name FROM table1 WHERE name ~ '[^[:alnum:]]'

见:http ://sqlfiddle.com/#!12/2edd5/15

我没有使用过\W,因为它相当于[^[:alnum:]_]并且您不想要下划线。请参阅有关正则表达式的 PostgreSQL 文档

于 2012-11-05T10:48:04.860 回答