在 Oracle 中,我有一个数据库 CLOB 字段,我需要从中提取数据。
规格看起来像:
[<br /><b>A:</b><br />Text A which does not contain HTML[<br />]]
[<br /><b>B:</b><br />Text B which does not contain HTML[<br />]]
[<br /><b>C:</b><br />Text C which does not contain HTML[<br />]]
三者中的任何一个都可能缺失,但如果存在,它们将始终按 A、B、C 的顺序排列。字段之间并不总是有回车分隔。
我需要:
<br /><b>
开头就可以了,但是更好的正则表达式会很棒。例子:
场 | 有效 | A | 乙 | C |
---|---|---|---|---|
|
是 | 福 | 酒吧 | 巴兹 |
|
是 | 福 | ||
|
是 | 酒吧 | ||
|
是 | 福 | 酒吧 | |
|
是 | 福 | 巴兹 |
是否有任何正则表达式专家可以告诉我是否/如何提取 A、B 和/或 C?
谢谢!
添加了一个 SQLFiddle不确定这是否适用于
Oracle
,因为每个引擎都有自己的微妙之处,但是
在这里它似乎有效。
(?:\<br \/\>\<b\>[ABC]:\<\/b\>\<br \/\>([^<]+)(?:\<\/b>(?:\<br \>)?)?)?\s*\n?\s*