问题描述
我试图用regexp_replace消除字符串的某些部分,并尝试大量的正则表达式,但我无法获得所需的结果。我正在使用类似于以下内容的代码:
声明
W _ 次数;
w_source varchar2(2000);
w_target varchar2(2000);
w_regexp varchar2(100);
开始
w_regexp := '(<脚本>。)?';
w_source := ' 一些普通文本。 更普通的文本。 ';
w_times := regexp_count(w_source,w_regexp);
dbms_output.put_line('找到:' | | w_times | | '时间模式' | | w_regexp);
w_target := w_source;
我在1 ..w_times循环
w_target := regexp_replace(w_target,w_regexp,'',1,1,'n');
dbms_output.put_line('目标:' | | w_target);
dbms_output.put_line('来源:' | | W _ 来源);
结束循环;
结束;
当我用regexp_count运行它 (我也在sqlLive上证明它) 时,我有一个3个模式计数的答案,但是即使在for句子的第一次运行中,regexp_replace也会返回我一个空白行,因此,regexp_replace将在第一个 标记之间获取所有内容。
每次如何仅消除 并保留所有其他文本?
如果我使用: “w_target := regexp_replace(w_target,w_regexp,'',1,0,'n'); ”,没有for句子,也会发生同样的情况。
声明
W _ 次数;
w_source varchar2(2000);
w_target varchar2(2000);
w_regexp varchar2(100);
开始
w_regexp := '(<脚本>。)?';
w_source := ' 一些普通文本。 更普通的文本。 ';
w_times := regexp_count(w_source,w_regexp);
dbms_output.put_line('找到:' | | w_times | | '时间模式' | | w_regexp);
w_target := w_source;
我在1 ..w_times循环
w_target := regexp_replace(w_target,w_regexp,'',1,1,'n');
dbms_output.put_line('目标:' | | w_target);
dbms_output.put_line('来源:' | | W _ 来源);
结束循环;
结束;
当我用regexp_count运行它 (我也在sqlLive上证明它) 时,我有一个3个模式计数的答案,但是即使在for句子的第一次运行中,regexp_replace也会返回我一个空白行,因此,regexp_replace将在第一个 标记之间获取所有内容。
每次如何仅消除 并保留所有其他文本?
如果我使用: “w_target := regexp_replace(w_target,w_regexp,'',1,0,'n'); ”,没有for句子,也会发生同样的情况。
专家解答
<脚本>。
有效地说:
“找到 ”
关键是 “尽可能”,最终最终会出现在源文本的最后部分
你想把你的贪婪指示器移动到 “尽可能” 扫描发生的地方,即 “”。因此
有效地说:
“找到 ”
关键是 “尽可能”,最终最终会出现在源文本的最后部分
SQL> with src as 2 ( select ' Some normal text. More normal text. @' s from dual ) 3 select regexp_replace(s,'()?') 4 from src; R - @复制
你想把你的贪婪指示器移动到 “尽可能” 扫描发生的地方,即 “”。因此
SQL> with src as 2 ( select ' Some normal text. More normal text. @' s from dual ) 3 select regexp_replace(s,'()') 4 from src; REGEXP_REPLACE(S,'( --------------------------------------- Some normal text. More normal text. @复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
601次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
586次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
494次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
478次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
462次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
439次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
437次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
426次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
371次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
360次阅读
2025-04-15 14:48:05