Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Sql oracle正则表达式问题_Sql_Regex_Oracle11g - Fatal编程技术网

Sql oracle正则表达式问题

Sql oracle正则表达式问题,sql,regex,oracle11g,Sql,Regex,Oracle11g,我一直在尝试查找不可打印的记录(即ASCII 32到127之间),下面我提到了,根据查询,它应该打印chr小于32或大于127的所有记录,但它不显示chr(160)的记录,而显示chr(10)的记录 插入到tq84\u比较中 价值观 (101,“在线”chr(160)| chr(160)| chr(160)| chr(160)) 无法将Unicode硬空间与[:space:、[^[:print:]或\s模式匹配 您可以使用以下方法修剪字符串: 里面的空间是硬空间。^[[:space:]+将匹配字

我一直在尝试查找不可打印的记录(即ASCII 32到127之间),下面我提到了,根据查询,它应该打印chr小于32或大于127的所有记录,但它不显示chr(160)的记录,而显示chr(10)的记录

插入到tq84\u比较中 价值观
(101,“在线”chr(160)| chr(160)| chr(160)| chr(160))

无法将Unicode硬空间与
[:space:
[^[:print:]
\s
模式匹配

您可以使用以下方法修剪字符串:

里面的空间是硬空间。
^[[:space:]+
将匹配字符串开头的所有ASCII空格和/或硬空格,
[[:space:]+$
将匹配字符串结尾的所有ASCII空格字符和硬空格

如果要在
[^[:print:]
中添加硬空间,则需要使用替代选项:

select regexp_replace(' some stuff  ', '^([^[:print:]]| )+|([^[:print:]]| )+$', '') as result from dual

请参阅。

160代码是硬空格,对吗?这是预期的行为,因为
[:print://code>匹配
[\x20-\x7E]
、空格和所有其他可打印的ASCII字符。由于trim对chr(160)不起作用,我们如何删除它?您的意思是需要从条目的开始/结束处删除任何空格吗?
select regexp_replace(' some stuff  ', '^[[:space:] ]+|[[:space:] ]+$', '') as result from dual
select regexp_replace(' some stuff  ', '^([^[:print:]]| )+|([^[:print:]]| )+$', '') as result from dual