Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
如何在oracle中仅从字符串中删除左括号和右括号?_Oracle - Fatal编程技术网

如何在oracle中仅从字符串中删除左括号和右括号?

如何在oracle中仅从字符串中删除左括号和右括号?,oracle,Oracle,我有这样一个字符串: (1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里) 我需要这样的输出: 1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里 即只在开始和结束时不要将托架移到中间, 也 如果字符串是这样的,要么有起始括号,要么有结束括号 (1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr

我有这样一个字符串:

(1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里)

我需要这样的输出:

1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里

即只在开始和结束时不要将托架移到中间,

也 如果字符串是这样的,要么有起始括号,要么有结束括号

(1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里

1/8in盖TBE ASME B1.20.1(NPT)外螺纹x Fem CL400铜合金B152 Gr C10400水泥衬里)

然后不要拆下支架

我尝试使用regexp\u replace,但找不到解决方案。
任何帮助都是值得的

,因为简单的
案例
足以移除前导和结束括号

给予

或者,您可以按如下方式使用
REGEXP

select 
  txt,
  nvl(
     REGEXP_SUBSTR(txt, '^\((.*)\)$', 1, 1, null, 1),
     txt)
  as txt_new
from txt
regexp
“^\(.*)$”
强制使用前后括号,并返回-first group(regexp\u SUBSTR的第五个参数)之间的部分


如果REGEXP_SUBSTR返回noting,即表达式未包含在括号中,
NVL
返回原始值。

像xxx(x(x)x)xxx这样的字符串如何?或者,如果这两个符号都是“括号”,则只需从字符串中删除第一个和最后一个符号?只需删除第一个和最后一个位置上的括号谢谢您的回复,但我需要在多个位置使用它,不会到处写案例陈述recommended@ShashankJha添加了一个regexp解决方案,但是你需要一些表达式logik来去掉括号。如果你需要最小化编码,你可以定义一个函数。
TXT      NEW_TXT
-------- --------
(xxxx)   xxxx     
(x(x)xx) x(x)xx   
(xxxx    (xxxx    
xxxx)    xxxx)    
xxxx     xxxx  
select 
  txt,
  nvl(
     REGEXP_SUBSTR(txt, '^\((.*)\)$', 1, 1, null, 1),
     txt)
  as txt_new
from txt