★正規表現(Regular Expression) TmEditorCRでは、未熟ながら文字列検索に正規表現をサポートしています。 (注意)オペレーションは、日本語(2バイト文字)をサポートしていません。 TmEditorCR では、複数行にわたるオペレーションをサポートしていません。 (仕様例) ○タグ部分の検出 検索文字列:\<[^\>]+\> (解説)'<'で始まり、'>'でない間繰り返し、'>'で終わりと一致。 ○URL検出 検索文字列:http\:\/\/[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\_]+ (解説)'http://'で始まり、'英数字.~-/?&+=:@%;#_' が連続してある間一致。 ○文中 URL に HTMLリンクで置換する 検索文字列:([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\_]+) 置換文字列:\1<a href=\"\2\">\2<\/a> (解説)検索:グループ1は、="でない文字、グループ2は、上記URL文字列 置換:グループ1<a href="グループ2">グループ2</a> で置換。 ○シフトJISの扱い(2バイト文字) シフトJISのコード範囲は以下のようになっています。 1バイト目 0x81〜0x9F, 0xE0〜0xFC 2バイト目 0x40〜0x7E, 0x80〜0xFC 半角カナコードは 0xA0〜0xDF の間を使います。 正規表現では、 2バイト文字:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC] 半角カナ :[\xA0-\xDF] よって、任意の1文字をあらわすには ([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|([\xa0-\xdf])|([\w\d])|(.) (2バイト文字) or (半角カナ) or (英数字) or (それ以外) ○ファイルパスの検出の例(2バイト文字対応) \w\:\\(([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])|([\xa0-\xdf])|([\w\d\x20\\\.\(\)\-\_\~\[\]]))+ ドライブ:\( (2バイト文字) or (半角カナ) or (英数字,' ',\,.,(,),-,_,~,[,]) )の連続 ○ワードセレクトの例 (([\x82][\x4f-\x58])+) //全角数字 |(([\x82][\x60-\x9a])+) //全角英字 |((([\x82][\x9f-\xf1])|([\x81][\x5b]))+) //全角かな + ー |((([\x83][\x40-\x96])|([\x81][\x5b]))+) //全角カナ + ー |(([\x88-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+) //漢字 |([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]) //それ以外 |(([\w\d])+) //英数字 |(.) //以外 ○2バイト文字を交えた検索・置換 上記のように、文字コードを指定することによって可能です。 「ページ*.txt」→「page*.html」にしたい場合(*は、任意の数値とする) 検索文字:\x83\x79\x81\x5B\x83\x57(\d+\.)txt 置換文字:page\1html (※文字コードの参照は、「編集」メニューの「文字コード」で) (正規表現オペレーター) ^ 行の始まりと一致。 $ 行の終わりと一致。 . 任意の文字と一致。 [ ] 文字セットと一致 [^ ] 文字セットでないのと一致 ? 前のパターンと 0 か 1 以上と一致 | 前のパターンあるいは、次のパターンと一致 @ 前のパターンと 0 か 1 以上と一致 (non-greedy) # 前のパターンと 1 以上と一致 (non-greedy) * 前のパターンと 0 か 1 以上と一致 (greedy) + 前のパターンと 1 以上と一致 (greedy) { } 文字パターンのグループ化(※) ( ) 文字パターンのグループ化(結果の保存) \ 次に続く文字を出力(a-z をのぞく) < 単語の始まりと一致 > 単語の終わりと一致 \x## ASCII code ## (hex) \N### ASCII code ### (dec) \o### ASCII code \a '\a' \r 0x13 (CR キャリッジリターン) \b '\b' \t 0x09 (TAB タブ) \f '\f' \v '\v' \n 0x10 (LF ラインフィールド) \e (^E エスケープシーケンス) \s ホワイトスペースと一致 (CR/LF/TAB/SPACE 改行,タブ,スペース) \S ホワイトスペースと不一致 \w 単語キャラクターと一致 \W 非単語キャラクターと一致 \d 数字キャラクター \D 非数字キャラクター \U 大文字と一致(Upper case) \L 小文字と一致(Lower case) \C Match case sensitively from here on \c Match case ingnore from here on