我需要你的帮助。
我使用Oracle SQL,需要删除括号外的所有内容。例如:
- Stabilization loans, mortgage lending (StabL ML) => StabL ML
- Refinanced loans and restructured loans (RefL RL) => RefL RL
- Individual reserve (IR) => IR
我试着用类似的东西,但它不工作
select regexp_replace(example, '\([A-Za-z ]\)', '') from dual;
我将感激任何帮助!
3条答案
按热度按时间rkue9o1l1#
尽管您使用了
.*\(|\).*
和REGEXP_REPLACE
这样的模式might consider,但我还是希望您使用请参阅the DBfiddle。
\(
-一个(
字符([^()]*)
-组1:除括号外的任何零个或多个字符\)
-一个)
字符1, 1, 'i', 1
使正则表达式引擎只从字符串中的第一个字符开始搜索一次(以不区分大小写的方式,尽管这在这里并不十分重要),最后一个1
提取组1的值。qgelzfjb2#
你的算法是部分正确的。但是你必须加上表达式是“+”
'\([A-Za-z ]+\)'
Regex101
或
Regex101
“([A-Za-z].+)([(])([A-Za-z].+)([)])”
你可以用上面的代码替换“$3”。但是我认为这个代码对你更有用。
apeeds0o3#
您可以使用此选项: