Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式以排除Postgresql中的某些HTML标记_Regex_Postgresql_Regex Negation - Fatal编程技术网

Regex 正则表达式以排除Postgresql中的某些HTML标记

Regex 正则表达式以排除Postgresql中的某些HTML标记,regex,postgresql,regex-negation,Regex,Postgresql,Regex Negation,有没有办法维护一些标记和标记之间的文本,排除使用Postgresql中正则表达式的HTML文本中不需要的标记? 我想使用regexp\u replace,因为当我在很长的文本中使用regexp\u时,regexp\u匹配会产生一组数组,这会减慢查询速度 我设法匹配我想要保留的标签。例如: select regexp_replace( '<diversity bad text> <div good text> <br> <invalid> </

有没有办法维护一些标记和标记之间的文本,排除使用Postgresql中正则表达式的HTML文本中不需要的标记? 我想使用regexp\u replace,因为当我在很长的文本中使用regexp\u时,regexp\u匹配会产生一组数组,这会减慢查询速度

我设法匹配我想要保留的标签。例如:

select regexp_replace(
'<diversity bad text> <div good text> <br> <invalid> </div> mantain1 <division> mantain2 </invalid> mantain3',
E'</?(div|br)( [^>]*?>|>)', 'OUT','gi');
选择regexp\u replace(
“
mantain1 mantain2 mantain3”, E']*?>|>)'、“OUT”和“gi”);
结果:

<diversity bad text> OUT OUT <invalid> OUT mantain1 <division> mantain2 </invalid> mantain3
<diversity bad text> <div good text> <br> OUT OUT mantain1 <division> mantain2 OUT mantain3
OUT OUT mantain1 mantain2 mantain3
但当我试图逆转比赛时,一切都失去了控制

我使用负向前看得到的最接近的结果是:

select regexp_replace(
'<diversity bad text> <div good> <br> <invalid> </div> mantain1 <division> mantain2 </invalid> mantain3',
E'<(?!div|br)(.+?)>', 'OUT','gi');
选择regexp\u replace(
“
mantain1 mantain2 mantain3”, E’、‘OUT’、‘gi’;
结果:

<diversity bad text> OUT OUT <invalid> OUT mantain1 <division> mantain2 </invalid> mantain3
<diversity bad text> <div good text> <br> OUT OUT mantain1 <division> mantain2 OUT mantain3

输出曼丹1曼丹2输出曼丹3
但显然不是我想要的

案文的预期结果:

<diversity bad text> <div good> <br> <invalid> </div> mantain1 <division> mantain2 </invalid> mantain3

mantain1 mantain2 mantain3
是:

OUT
OUT mantain1 OUT mantain2 OUT mantain3
预期结果是什么?试试
E'\\s*]*>'
这是一个很棒的Wiktor。它工作得很好。我编辑了这篇文章以包含预期的结果。