我在这里有点过头了。
我有一个SQL数据库,我试图用空格+ linefeed替换所有没有空格的linefeed (LF)。我用SQLiteStudio来做这个。我现在的情况如下:
UPDATE table
SET column = replace( column, '%' + char(10) + '%', ' ' )当我运行上面的查询时,以下数据:
<br><strong><font color="2018283286c3">
Lorem ipsum dolor sit amet, consectetur adipiscing[LF]
elit, sed do eiusmod tempor incididunt ut labore et[LF]
<hr size="1px" noshade style="clear:both;margin-top:10px;height:1px;">..。变成:
<br><strong><font color="2% %18283286c3">
Lorem ipsum dolor sit amet, consectetur adipiscing[LF]
elit, sed do eiusmod tempor incididunt ut labore et[LF]
<hr size="1px" noshade style="clear:both;margin-top:1% %px;height:1px;">为了清晰起见,我在上面添加了LF的。可以看到,由于某种原因,我的查询只替换了零,并且与linefeed不匹配。
最后我要做的是:
<br><strong><font color="2018283286c3">
Lorem ipsum dolor sit amet, consectetur adipiscing[WHITESPACE][LF]
elit, sed do eiusmod tempor incididunt ut labore et[WHITESPACE][LF]
<hr size="1px" noshade style="clear:both;margin-top:1% %px;height:1px;">..。这样,只有LF还没有被空格预先准备好,就会被一个空格+LF所替代。理想情况下,如果已经被空格预先准备好了,就会被单独使用。
知道我做错了什么吗,或者有更好的方法吗?我在网上找到了上面的查询,并尝试修改它。不习惯处理这些事情。感谢您的阅读!
发布于 2017-12-26 03:40:20
不确定DB安装程序是否支持正则表达式,但如果支持正则表达式,则可以尝试使用它们进行搜索/替换。请看一下这个链接:
replace a part of a string with REGEXP in sqlite3
一旦您的regexp替换函数就位,您就可以使用它作为搜索模式:
(?P<mystring>.*\S+)\n$这将匹配以LF结尾的字符串,但它前面没有空格。然后,您可以使用命名组"mystring“来构造所需的字符串。
您可以在这里测试/修改您的regexp:https://regex101.com/
https://stackoverflow.com/questions/47972870
复制相似问题