如何使用正则表达式或任何其他方法在 PL/SQL 中提取单引号内的字符串 [重复]
Posted
技术标签:
【中文标题】如何使用正则表达式或任何其他方法在 PL/SQL 中提取单引号内的字符串 [重复]【英文标题】:How to extract string inside single quotes in PL/SQL using regex or any other method [duplicate] 【发布时间】:2018-09-11 12:30:20 【问题描述】:我需要在 PL/SQL 中的单引号内获取字符串,无论是使用正则表达式还是任何其他有效的方法。
example: 'He is my uncle's son.and he is a programmer'
output: He is my uncle's son.and he is a programmer
提前致谢!!
【问题讨论】:
考虑使用trim(<your_text>,'''')
?如果您使用的是旧版本 ltrim(rtrim(<your_text>,''''),'''')
?
像 'a single quote '' ' 这样的字符串呢?结果应该是什么?另外,你能有像'这里开始引用的部分:'' QUOTED '''这样的字符串吗?
在 Oracle 中,当我们想在字符串中添加单引号时,我们将其写成 (' I am going to see "The Palace" ') 所以预期的输出是 ( I am going to see 'The Palace' ) 所以我的要求也一样,我只是想以同样的方式获得。
您的字符串是否可以包含一个包含您想要保留的单引号的子字符串?比如:“先生。奥布莱恩是他的名字?
@Gary_W :是的,应该保留。
【参考方案1】:
使用可以使用替换功能..
select replace ('<some text here>',chr(39)) from dual;
示例select replace (q'[this is ' having' mult'iple ' quotes'']',chr(39)), q'[this is ' having' mult'iple ' quotes'']' original_text from dual;
输出将是:
这是有多个引号
这将删除字符串中的所有单引号。
如果要删除双引号,请使用 chr(34)。
【讨论】:
感谢您的回复,但我不想删除单引号我想要单引号内的字符串而不删除单引号,然后该字符串将在循环内发送。 列中的单引号不会被删除...函数会通过删除单引号返回字符串...以上是关于如何使用正则表达式或任何其他方法在 PL/SQL 中提取单引号内的字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL:通过正则表达式查找所有西里尔文(或非拉丁文)符号
如何使用 PL/SQL 正则表达式将 HTML 标记及其内容替换为相同数量的“?s”?