サクラエディタのgrep置き換え超ベンリ
よく使う正規表現
- \ 正規表現で使用される文字のエスケープ
- ^ 行頭
- $ 行末
- \A 文字列の最初
- \Z 文字列の最初
- \s 空白文字
- \d 10進数
- * 直前のパターンの0回以上の繰り返し
- + 直前のパターンの1回以上の繰り返し
- $1~9
()の出現順に$1,2,3...となる
例えば(no1)(no2)とした場合
$1 = no1
$2 = no2になる
行末の空白を削除
\s 空白文字
検索文字列
\s+$
置き換え文字列
\s+$
置き換え文字列
+ 直前の繰り返し
行末の空白の繰り返しの部分を置き換え
改行コードの統一
[] 文字集合を使用する検索文字列
[\r\n]+
置き換え文字列
\r\n
[\r\n]+
置き換え文字列
\r\n
表記ゆれをなくす
| 論理和を使用する
検索文字列
directory|dir|folder
置き換え文字列
directory
全てdictionaryに統一されます。directory|dir|folder
置き換え文字列
directory
問題は似たような名前で全く違う機能があることですが。
メンバ変数にセッタ・ゲッタをつける
検索文字列
private (.+) (.+);
置き換え文字列
private $1 $2;\r\n/\*\*\r\n \* $2取得\r\n \*/\r\npublic $1 get\u$2() {\r\n\treturn $2;\r\n}\r\n/\*\*\r\n \* $2設定\r\n \*/\r\npublic void set\u$2($1 $2) {\r\n\tthis->$2 = $2;\r\n}
わかりにくいので分解して解説private (.+) (.+);
置き換え文字列
private $1 $2;\r\n/\*\*\r\n \* $2取得\r\n \*/\r\npublic $1 get\u$2() {\r\n\treturn $2;\r\n}\r\n/\*\*\r\n \* $2設定\r\n \*/\r\npublic void set\u$2($1 $2) {\r\n\tthis->$2 = $2;\r\n}
private (.+) (.+); はprivate 型名 変数名のこと
$1 = 型名
$2 = 変数名
private $1 $2;で元の文字列を保持
\r\n/\*\*\r\n \* $2取得\r\n \*/\r\npublic $1 get\u$2() {\r\n\treturn $2;\r\n}\r\n がゲッタ
\r\n/\*\*\r\n \* $2取得\r\n \*/\r\n がコメント
\nは*をエスケープしている
public $1 get\u$2() {\r\n\treturn $2;\r\n}\r\n
がゲッタ本体
\uは先頭が大文字になる模様
セッタも同様
// 置き換え前 private string text; private int number;
// 置き換え後
private string text;
/**
* text取得
*/
public string getText() {
return text;
}
/**
* text設定
*/
public void setText(string text) {
this->text = text;
}
private int number;
/**
* number取得
*/
public int getNumber() {
return number;
}
/**
* number設定
*/
public void setNumber(int number) {
this->number = number;
}
キャメル ⇔ スネーク
http://qiita.com/ryo0301/items/7c7b3571d71b934af3f8
だいたいこのくらい知っていれば応用は利くと思います。
ぱっと見難しそうですが実は見るより書いたほうが数倍分かりやすかったりします。