Oracle SQL - REGEXP_LIKE包含az或AZ以外的字符

Tom*_*Tom 21 regex sql oracle

我想创建一个查询,我选择所有包含非az或AZ字符的记录

所以这样的事情

SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '![A-Z] [a-z]')

Mic*_*ski 35

^否定字符类:

SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '[^A-Za-z]')
Run Code Online (Sandbox Code Playgroud)

  • @Marcus模式查找除上/下字母以外的_any_字符,并且您的单个空格匹配.它不强制该字符串包含_only_非字母.如果你必须确保匹配_no_非字母字符,请将正则表达式固定为`^ [^ A-Za-z] + $` - 我认为这就是你所要求的.由于空间的原因,锚定的模式不应该匹配. (2认同)
  • 作品谢谢!使用这个:`REGEXP_LIKE (mycol, '[^A-Za-z0-9, -./]+')`。如果你回答那个链接的问题,我会接受它...... (2认同)

Jus*_*ave 9

就像是

select *
  from foo
 where regexp_like( col1, '[^[:alpha:]]' ) ;
Run Code Online (Sandbox Code Playgroud)

应该管用

SQL> create table foo( col1 varchar2(100) );

Table created.

SQL> insert into foo values( 'abc' );

1 row created.

SQL> insert into foo values( 'abc123' );

1 row created.

SQL> insert into foo values( 'def' );

1 row created.

SQL> select *
  2    from foo
  3   where regexp_like( col1, '[^[:alpha:]]' ) ;

COL1
--------------------------------------------------------------------------------
abc123
Run Code Online (Sandbox Code Playgroud)