2016-12-01 53 views
0

我想在SQL分割以下字符串:分割字符串测试=“毒鼠强”的正则表达式

select regexp_substr('version="100104" name="Contracts Ref." desc="" type="picker" bp_name="Contracts"','[^" ]+', 1, level) 
from dual 
connect by regexp_substr('version="100104" name="Contracts Ref." desc="" type="picker" bp_name="Contracts"','[^" ]+', 1, level) is not null; 

,但它是由空间拆分。 我需要一个回报,如 version="100104 name="Contracts Ref." 有人可以指导我吗?

回答

0

我相信你需要这样的事:

select regexp_substr('version="100104" name="Contracts Ref." desc="" type="picker" bp_name="Contracts"','(\w+=\"[^\"]*\")', 1, level) 
from dual 
connect by regexp_substr('version="100104" name="Contracts Ref." desc="" type="picker" bp_name="Contracts"','(\w+=\"[^\"]*\")', 1, level) is not null; 

在新的正则表达式模式(\w+=\"[^\"]*\") -

\w+=\"查找1个或多个字母或数字的,其次=”

[^\"]发现第一个报价后的所有内容不是报价本身

\"最后我们得到最后一个报价。

+0

谢谢你,这正是我想要达到的,非常感谢你的解释 –