[英]REGEXP_REPLACE - two letters in a string
我有一个字符串:
string := '</br>, <br/>, \n<br>, jane, brutus'
我必须用“/n”标记替换所有“br”标记。 我需要这样的 output:
'/n, /n, n/, jane, brutus'
我试过了:
select regexp_replace('</br>, <br/>, \n<br>, ania', '^.*((br)[^,]+)', '\n', 1) from dual;
但是后来 output 是这样的:
'/n'
有什么想法可以解决这个问题吗?
这比你想象的要容易。 只需寻找 'br> 部分。 这是:一个左尖括号,一个可选斜杠,字母 b 和 r,一个可选斜杠,一个右尖括号: </?br/?>
。
整个表达式:
select regexp_replace('</br>, <br/>, \n<br>, ania', '</?br/?>', '\n') from dual;
如果要替换所有相邻标记组并将 br 标记与搜索中的 \n 相同,那么它会变得有点复杂:
regexp_replace('</br>, <br/>, \n<br>, ania', '(\\n|</?br/?>)+', '\n')
如果我理解正确,此代码将起作用。
SQL>
SELECT word,
REGEXP_REPLACE (REGEXP_REPLACE (word, '([\\<])([a-zA-Z/]+)
([>])', '/n'),
'\\n([a-zA-Z/]+)',
'\1')
AS Result
FROM (SELECT '</br>, <br/>, \n<br>, jane, brutus' AS word FROM DUAL)
/n,/n,/n,简,布鲁图斯
SQL>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.