2018年9月11日火曜日

正規表現で全角文字の検索(サクラエディタ)

★全角文字を検索したい

全角文字を正規表現で検索しようと思い調べたところ、
[^\0x00-\x7F]
で検索できるとのこと。16進数の00から7FがASCIIコードの範囲で、
それを^で否定する(=ASCIIコード以外を)検索方法となります。

ただ、サクラエディタで検索しようとすると、
「too short multibyte code string」と正規表現エラーとなって
検索することができません。

対処方法としては
[^\0x{00}-\x{7F}]
と、波括弧で上記のように囲うことで検索することができます。

参考:ASCII文字コード
http://zzz.hikarimail.com/sankou/ascii.html

*** --- *** --- *** --- ***

2020/02/16:追記
★特定の文字を含む行以外を検索したい

第1回 私たちの暮らしと情報ネットワーク
【キーワード】
ネットワーク、ノード、リンク、リソース、インターネット、クラウドコンピューティング
第2回 ディジタル信号の伝送
【キーワード】
2進数、16進数、ディジタル化、ビット、バイト、bps

の「第n回~」と書かれた行だけ残したいってことです。

↓これでできました。
^(?!.*第).+$

「?!」を付けると、後に続く文字を「含まない」と出来るようです。
なので、第の前の「.*」も今回の場合不要です。例えば、
★△第1回~
■×第2回~
とかの場合に「.*第」とするとよいと思います。
行頭^、確実にヒットする「」を()のグループで囲って、その他の文字列を意味する.+、行末$
としてます。
「.」は任意の1文字
「+」は1回以上繰り返し
「*」は0回以上繰り返しです。

*** --- *** --- *** --- ***

2020/02/16:追記
★不要な連続した改行を削除したい

CR/LF→置換前:「^\r\n」 置換後「」
LF改行→置換前:「^\n」置換後「」
CR改行→置換前:「^\r」置換後「」
正規表現(E)
すべて置換(A)

CR/LF等の確認はサクラエディタ画面の右下に表示されています。