【发布时间】:2016-04-02 01:26:27
【问题描述】:
在 PostgreSQL 中使用regexp_matches
有一个包含以下内容的文本字段:
unique_string_abc
<ul>
<li>a1</li>
<li>a2</li>
...
<li>an</li>
</ul>
blah
blah
<ul>
<li>b1</li>
...
<li>bn</li>
</ul>
blah
blah
<ul>
<li>c1</li>
...
<li>cn</li>
<ul>
blah
试图获取 [a1, a2, a3, ... , an] 的列表,但排除 b1..bn, c1..cn
到目前为止,我能够使用多个子查询来获得它,第一个子查询返回 <ul>...</ul> 之间的完整字符串,然后使用以下方法将其拆分:
SELECT regexp_matches(html_text,
'unique_string_abc\s*?<ul>\s*?(<li>.*?<\/li>)\s*?</ul>',
'g')
但是认为必须有一种更简单的方法来使用单个正则表达式,使用前瞻或后瞻 </ul>?
任何指针将不胜感激!
【问题讨论】:
标签: regex postgresql pattern-matching regex-lookarounds