2017-12-26 31 views
0

私は少し頭がおかしくなりました。SQLデータベースの改行の置き換え

私はSQLデータベースを持っています。空白で始まっていないすべての改行(LF)を空白+改行に置き換えようとしています。私はこれにSQLiteStudioを使用しています。 ...

<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;"> 

次のようになります:

UPDATE table 
SET column = replace(column, '%' + char(10) + '%', ' ') 

私は上記のクエリを実行

、次のデータ:私は今持っていることは以下のとおりです。

<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]のがあります。わかるように、私のクエリは何らかの理由でゼロを置き換えるだけで、改行には一致しません。私はで終わるために必要なもの

はこれです:

<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のはありませんが、すでに空白でpreecededように。既に空白で始まっているLFは、理想的には、単独で放置されています。

私が間違ってやっていることは何ですか、あるいはこれにはもっと良い方法があるでしょうか?私は上記のクエリをオンラインで見つけ、それを微調整しようとしました。これらのことに慣れていない。読んでくれてありがとう!

+0

あなたは '( ''、theColumn、CHAR(13)+ CHAR(10))を置き換える'試してみましたか?または単にchar(13)? – arcee123

答えて

0

DB設定で正規表現がサポートされているかどうかはわかりませんが、そうであれば検索/置換を試みることができます。このリンクを見てみましょう:

replace a part of a string with REGEXP in sqlite3

を、あなたの正規表現の場所に機能を置き換える得れば、あなたは検索パターンとしてこれを使用することができます。これは、で終わる文字列にマッチします

(?P<mystring>.*\S+)\n$ 

LFですが、直前の空白はありません。名前付きグループ "mystring"を使用して、必要な文字列を作成することができます。

あなたがここにあなたの正規表現を修正/テストすることができます。https://regex101.com/

関連する問題