我想用一个字符串中的两个单引号('
)替换一个字符串引号(''
)的所有实例。
假设e'QmfgLu/]sf]/sd
是一个字符串,我想将'
替换为''
。
结果必须为e''OmfgLu/]
我尝试了以下查询:
update customer set name=REGEXP_REPLACE(name, E'\'', '''');
也
update customer set name=REPLACE(name, E'\'', '''');
此查询无法正常工作。编写查询的合适方式是什么?
答案 0 :(得分:2)
您可以使用此正则表达式用2个引号代替单引号。
update customer set name=REGEXP_REPLACE(name, $$([^'])'([^'])$$, $$\1''\2$$ ,'g');
$$([^'])'([^'])$$
-表示除单引号,引号和非引号字符之外的任何字符的序列。
我正在使用dollar quoting以避免混淆引号。
编辑
@edruid指出,要处理字符串开头和结尾的引号大小写,请使用:
REGEXP_REPLACE(name, $$([^']|^)'(?!')$$, $$\1''$$ ,'g')
这使用negative lookahead
来匹配单引号-(?!')
答案 1 :(得分:0)
在postgres中,在字符串中使用单引号的方式是键入”(用作转义符),因此您的替换将是
transform-origin: 0% 0%;
(如果只想替换第一个',则跳过最后一个'g')
或不使用正则表达式:
<html>
<body>
<!--The content below is only a placeholder and can be replaced.-->
<div style="width: 1000px; height: 800px; position: absolute; top: 100px">
<div style="position: absolute; right: 16px; z-index: 2;">
<!---something else--->
</div>
<!--- this is the scrollable outer div --->
<div
style="width:3000px; background-color:red; height: 2000px; z-index: 1; overflow: auto;"
>
<!--- I am trying to zoom this div in/out --->
<!--- sadly I cannot align it within the outer div --->
<div
style="position: absolute; transform: scale(1.2); background-color: black; width: 500px; height: 400px; transform-origin: 0% 0%;"
></div>
</div>
</div>
</body>
</html>