むずむずサイト製作:凝ったきれいなブログのコツ

ホームページ、ブログの作成について。PHP、CSS、JavaScripoなどを用いた設定。またホームページ作りに便利なフリーソフトなども紹介。

スポンサーサイト

一定期間更新がないため広告を表示しています

| - | - | - | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - スポンサーサイト
秀丸:正規変換の例(メールアドレス、タブ、csv)

秀丸で正規変換をするとき、

うまくいかなかったり、少し複雑だと考えるのが大変になったりします。

いくつか抜き出しておきます。

 

メールアドレスを抜き出す - 逆引き秀丸の正規表現で置換サンプル集 - DEARIE
空白 -> タブ変換 - 逆引き秀丸の正規表現で置換サンプル集 - DEARIE
CSV(カンマ区切り)をいじる - 逆引き秀丸の正規表現で置換サンプル集 -

 

まとめると次の通り。

 

メールアドレスの正規表現
[A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+
 
・メールアドレスの前後に改行を加える
検索
([A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+)
置換
\n\n
 
・メールアドレスだけgrep で抜き出す
検索
([A-Za-z0-9\-\.\_]+@[A-Za-z0-9\-\_]+\.[A-Za-z0-9\-\.\_]+)
 
・空白4つをタブに変換
検索
^(\t*)( )
置換
\t
 
・5列のcsvの一部を入れ替える
検索
^(([^,]?)*),(([^,]?)*),(([^,]?)*),(([^,]?)*),((.?)*)$
置換
,,,,
| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:正規変換の例(メールアドレス、タブ、csv)
秀丸エディタ:複数行の置換

秀丸では、複数行(3行以上)の検索が、うまく機能しないことがあります。

次のページに、詳しく書いてあります。

 
第IV部〜テキスト編集を極める!!(下の方の「秀丸での複数行にまたがる」)
改行(\n)とマッチ : 正規表現,秀丸 | findxfine -Web制作に関する覚書-

 

まとめると、秀丸の正規表現の解釈は、次のようになっているそうです。

・正規表現の解釈は、JRE32.DLL が行っている。
・秀丸がJRE32.DLLに送るデータは、
 現在のカーソルの次の文字から、検索文字に含まれる「¥nの個数 +1」
・送られたデータの末尾に「¥n」があれば、それが$になる。
・送られたデータの末尾に「¥n」がないと、末尾に「¥n」をいれ、$にする。

 

そのため、例えば、次のような文章があるとします。

 

¥n
あいうえおか¥n
¥n

 

この文章は、次のようにJRE32.DLLに送られます。

 

¥nあいうえおか¥n¥n

 

そして、次のように変えられます。

  

¥nあいうえおか¥n$

 

そのため、2行目の「あいうえおか¥n」は、次のようになってしまうよう。

 

あいうえおか¥n$

 

その結果、2行目は、「$を含む文章」となってしまうようです。

(合ってなかったら、ごめんなさい)

そのため、次のサイトに、いくつか対応策が書かれています。

 

第IV部〜テキスト編集を極める!!(下の方の「秀丸での複数行にまたがる」)
秀丸で複数行のgrep検索・置換を実現する方法。 | kimihiko Tech
改行を含む正規表現について - 教えて!goo
秀丸で複数行置換 | recorder

 

まとめると、次のような方法があるようです。

・マクロを使う方法

・秀丸のツールのQuatra を使う方法(田楽DLLも入れる)

・EmEditorを使う方法

・一旦改行を別の文字に変えてしまう方法

・sed や awkを使う方法

・ある置換ツールでBREGEXP DLLを使う方法

Memom(M) 100ファイル一括!!メモ帳(M) を使う方法

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸エディタ:複数行の置換
秀丸エディタ:マクロのQ&Aのページ

秀丸エディタについての説明は、こちらが詳しいです。

更新も頻繁にされています。

 

h-tom's Warehouse - 秀丸エディタQ&A補足事項

 

「秀丸マクロについての質問」「秀丸マクロのいろはにほへと」などは、

参考になるところも多いと思います。 

役に立ちそうなタイトルをいくつか挙げると、こんな例が載っています。

 

・検索ダイアログボックスを出す
・文字列の後方から文字列を検索
・重複行の削除
・自動起動マクロで複数のマクロを実行したい
・範囲選択するには
| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸エディタ:マクロのQ&Aのページ
秀丸:秀丸マクロでの置換

秀丸マクロで置換を設定しておくと、

いくつもの置換を一度に行うことができるので楽です。

次のサイトが参考になります。

 

【ハウツー】ゼロからはじめる正規表現 秀丸編 - 漢字を開く+置換マクロ

 

まとめると、マクロの作成・登録・実行は、次のようになります。

 

1.マクロの保存先は、初期状態では秀丸のフォルダ内。
2.マクロの保存先を変えるときは、「その他」>「動作環境」>「環境」へ
3.マクロ用の文章を作成したら、そのフォルダに入れる。
4.マクロを使うときは、「マクロ」>「マクロ実行」で、マクロファイルを選択

 

また、置換用のマクロの文章は、次のように作成します。

 

・置換自体は「replaceall」文でも行える(マクロの記録をすると、これになる)
・しかし、一括変換の方が早いため、「replaceallfast」文を使う。
・正規表現での置換ができる「regular」オプションをつける。
・選択した範囲でも文章全体でも対象にできる「inselect」オプションをつける。
・「¥f」など、エスケープコードの「¥」を使う場合は、「¥¥f」と書く。
・例:replaceallfast "¥¥fい¥¥fう", "あ¥¥1", regular, inselect;

 

他に、マクロを使った置換の文章は、次のサイトも参考になります。

 

置換して文字列を取り出したい
選択範囲内の置換について

 

これによると、マクロの最初に「rangeeditin;」、最後に「rangeeditout;」

をつけると、部分編集モードにできるそうです。

なおマクロを使うときは、次のような注意点があります。

 

・「¥n」は、" "内では、「¥¥n」とせず「¥n」でも動作するよう。
・日本語を使うときは、マクロと置換される文章の文字コードを、同じにする。

 

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:秀丸マクロでの置換
秀丸:文字列を扱う(タグ付き正規表現)

置換では、ある条件にマッチした文字列を抽出して、

置換時に再利用することもあります。

次のサイトが参考になります。

「記事:置換して文字列を〜〜」には、()を使ったやり方が載っています。

 

第IV部〜テキスト編集を極める!! タグ付き正規表現とは?
秀丸エディタを使いこなす ―正規表現―タグ付き正規表現――
置換して文字列を取り出したい
逆引き秀丸の正規表現で置換サンプル集(旧) - DEARIE

 

サイトの説明は、少し分かりにくいので、

簡単に説明すると、次の通りです。

 

・「¥f」で、文章をザクザクと切る。
・切ったものは、先頭から、¥0、¥1、¥2・・・の順で扱える。

 

例えばこんな感じです。

 

「あああ¥fいいい¥fううう」の文字
¥0:「あああ」
¥1:「いいい」
¥2:「ううう」 

 

はじめが¥0になるのがややこしければ、こうしても構いません。

 

「¥fあああ¥fいいい¥fううう」の文字
¥1:「あああ」
¥2:「いいい」
¥3:「ううう」

 

これを置換で使うと、こんな感じです。

 

元の文章:「あああいいいううう」
検索:「あああ¥fいいい¥fううう」
置換:「¥0ぁ〜ん」
結果:「あああぁ〜ん」

 

なお、()で、同じように表現することができます。

この場合、()で囲んだところから順番に、¥1からとなります。

 

「あああ(いいい)ううう(えええ)おおお」の文字
¥1:いいい
¥2:えええ

 

正規表現で置換に使うと、このようなことができます。

 

元の文章「私は彼と300円のハンバーガーを食べた。」
検索:「^(.*300円).*(食べた。)¥n」
置換:「¥1のステーキを¥2」
結果:「私は彼と300円のステーキを食べた。」 

 

なお、¥fを使う場合、次のような注意があるようです。

 

・¥fは、かっこの中に入れてはいけない。
・どこで区切るか分からないような表現はいけない。(例:¥f.+¥f.+)
・¥fの後に、*、?、+のような、直前の文字を使うメタ文字はおかない。
・マクロを使う場合、replaceup に使うと、制限や困難がある?
・マクロのgrep関連でも無効な場合がある?(localgrep など?)
・マクロの””の中で使うときは、「¥f」は「¥¥f」と書く。
・切り分けの位置を判断できないと、文字列が削除されてしまうことも?

()を使うタグ付きの置換については、こちらに説明が書いてあります。

これによると、Ver5.03から可能になったようです。

 

h-tom's Warehouse - 秀丸エディタQ&A補足事項

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:文字列を扱う(タグ付き正規表現)
秀丸:正規表現の考え方

正規表現は、頭の中で考えていても、

どのような組み合わせになるか、なかなか分かりにくいもの。

例えば、次のようなファイルがある場合、こう考えると分かりやすいです。

 

例えば、次のような文章があるとします。

 

今日の朝。
ご飯は、めざし。
今日の昼。
ご飯は、サンドイッチ。
今日の晩。
ご飯は、ステーキ。

 

ここで、「朝か夜か晩か」と、「料理の名前」だけ取り出す場合。

共通する部分を見つけます。

 

今日の朝。
ご飯は、ごはんと味噌汁。
  

次に、行をそのままにして、正規表現にします。

 

^今日の.*¥n
ご飯は、.*。¥n

 

抜き出す部分をざっくりタグで切ります。

 

^今日の¥f.*¥f¥n
ご飯は、¥f.*¥f。¥n

 

タグの番号をつけると、「¥1」が「¥3」なのが分かります。

 

(¥0)(¥1)(¥2)
(¥2)(¥3)(¥4)

  

タグで切ったものを1行につなげます。同様に、置換も作成します。

 

検索:^今日の¥f.*¥f¥nご飯は、¥f.*¥f。¥n
置換:¥1「¥3」
結果:朝「めざし」昼「サンドイッチ」夜「ステーキ」

 

このように、複数行の置換を行う場合は、

まずはそのまま行を維持した状態で、

正規表現に直していくと作成しやすいです。

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:正規表現の考え方
秀丸:置換の応用

次のページの真ん中より少し下の段の、

「ある種のデータが何行かおきに一纏まりになっている物」の変換。

 

第IV部〜テキスト編集を極める!! タグ付き正規表現とは?
http://www.ceres.dti.ne.jp/~sugiura/〜〜〜

 

まとめると、つぎの通り。

次のような3行ごとのファイルがあるとします。

 

aaa
111
あああ
bbb
222
いいい

 

それを次のような形式にする場合。

 

aaa,111,あああ
bbb,222,いいい

 

これは、次のように考えて行うといいそうです。

 

aaa¥n
111¥n
あああ¥n

 

そして次のような三行を一纏まりのファイルと考え、

置換を繰り返すといいそうです。

 

^.+¥n
.+¥n
.+¥n

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:置換の応用
秀丸:ある文字が含まれない行を削除するgrep の使い方

「ある文字が含まれない行を削除する」

=「ある文字が含まれる行のみ抜き出す」という設定。

次のサイトの下の方が参考になります。

 

逆引き秀丸の正規表現で置換サンプル集(旧) - DEARIE
http://pc.dearie.jp/hidemaru/replace/old.html

  

これは、grep を使う、というもの。次のように使います。

 

1.秀丸の「検索」>「grepの実行」へ。
2.「検索する文字列」に、探す文字列を入れる。
3.「検索するファイル」は、(現在の内容)に。
4.「正規表現」にチェック。
5.検索を実行する。
6.別画面に、ある文字が含まれない行を削除された(ような)
  ファイルが作成される。
7.先頭行が不要なら、「^[^:]+: 」で置換し、消す(最後は半角空白)。
8.そのファイルを保存。

 

また、grep には、複数のファイルの中から同様に

指定文字の行を探せるようです。次のページが参考になります。

 

grepで検索―秀丸エディタを使いこなす―
http://www.shuiren.org/chuden/teach/〜〜〜

 

これによると、次の通りです。

 

1.「検索ファイル」の右側の、小さい右向き三角印を押してタイプを指定。
2.指定するフォルダを選べるので、そこで選ぶ。
3.フォルダ内のファイルを検索して、表示する。
4.表示されたフォルダの中で、元データを見たい行にカーソルを移動する。
5.F10キーを押すと、「tagジャンプ」して、元ファイルの行に飛ぶ。
※  検索時、「ファイル名の一覧だけ作成」するなどのオプションも可能。

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:ある文字が含まれない行を削除するgrep の使い方
秀丸:メタ文字(正規表現)

エディタで、秀丸を使っている人も多いと思います。

秀丸を使うならば、やはり正規表現での置換ができるようになりたいものです。

次のサイトが、参考になります。

特に、「サルにもわかる〜」は、とても分かりやすいです。

 

逆引き秀丸の正規表現で置換サンプル集(旧) - DEARIE
http://pc.dearie.jp/hidemaru/replace/old.html
秀丸エディタを使いこなす ―正規表現―インデックス――
http://www.shuiren.org/chuden/〜〜
サルにもわかる正規表現入門
http://www.mnet.ne.jp/~nakama/

 

簡単に重要なところだけまとめると、次のようになります。

まずは、メタ文字(特殊文字)。

 

.:とにかく、何か一文字。「..」なら、何か2文字。
^:キャレット。行の先頭。「^おは」なら、「おは」で行がはじまる部分。
$:行の最後。「食べた$」なら、「食べた」で行が終わる部分。
^^:行のはじまりにある「^」の文字を探す。
$$:行の最後にある「$」の文字を探す。
*:直前の文字が0個以上続く。
 「あい*う」なら、「あ」の後、「い」が0個以上続いて「う」の部分。
+:直前の文字が1個以上続く。
 「あい*う」なら、「あ」の後、「い」が1個以上続いて「う」の部分。
?:直前の文字が1個以下。
 「あい*う」なら、「あ」の後、「い」が1個以下で「う」の部分。
|:どちらかの文字。「あ|い|う」なら、「あ」か「い」か「う」

 

ブラケット(これもメタ文字)の使い方。

 

[]:指定した文字のどれか。[あいう]なら、「あ」か「い」か「う」
[A-Z]:AからZのアルファベットのどれか
[a-z]:aからzのアルファベットのどれか
[0-9]:0から9の数字のどれか
[^a]:先頭に「^」をつけると、その文字以外。
[^A-Za-z0-9]:アルファベットでも数字でもない文字
[、−○]:全ての記号。
[ぁ−ん]:全てのひらがな
[ァ-ヶ]:全てのカタカナ(小さいアから小さいケ)
[亜-腕]:第一水準の漢字
[弌-熙]:第二水準の漢字
[亜-熙]:漢字全て
[一二三四五六七八九十百千万億兆京]:一〜京までの漢数字
[かきくけこ]:か行のひらなが。
[か−こ]:「かがきぎくぐけげこ」のどれか(JIS漢字コード表に従う)
[−4]:「−」か「4」。[4−]は「4〜」の中途半端な書き方でミス。

 

パーレン(これもメタ文字)の使い方。

 

():カッコ内をひとくくりの文字列として扱う。
(じゃ)+:「じゃ」の1回以上の繰り返し。
(ぼく|わたし):「ぼく」か「わたし」
([わぁ]|あ〜)たし:「わたし」「ぁたし」「あ〜たし」

  

メタ文字には次の注意点があります。

 

※ メタ文字を文字として扱いたい場合は、前に¥をつける。(¥. ¥[ など)
※ ブランケットの中では、¥と] 以外は、メタ文字も文字として扱う。
※ 「^」は正規表現の始まり、「$」は正規表現の終わりにしか使わない。

 

メタ文字は、応用すると次のようになります。

.*:何かの文字が0文字以上

 

なお、メタ文字を使う場合、最長一致の原則、というものがあります。

それは、条件が会うとき、同じ行内で一番長い部分を選択する、というもの。

そのため、一つめの例では、範囲が広くなっています。

2つめは、「あ」と「ね」の間に、「ね」以外の文字が1文字以上入る設定。

 

あ.*ね:「あのねあのねぇ」の中の「あのねあのねぇ」
あ[^ね]+ね:「あのねあのねぇ」の中の「あのねあのねぇ」

  

その他、よく使うもの。

 

¥n:改行
:半角空白(そのまま半角空白を入れれば大丈夫)
 :全角空白(そのまま全角空白を入れれば大丈夫)
¥t:タブ
^[¥t  ]*¥n:先頭がタブか半角空白か全角空白を0以上含む行(空の行)

| comments(0) | trackbacks(0) | ソフト:秀丸エディタ | TOP↑ | このエントリーを含むはてなブックマーク はてなブックマーク - 秀丸:メタ文字(正規表現)