任意の文字に囲まれた文字
2011/01/07
テキストエディタにしろ、excelにしろ「検索・置換え」が出来るヤツで、任意の文字の削除。
例えば、「a」を「b」にするとき。
「検索文字:a」「置換え文字:b」とする。
例えば、「a」を消したいとき。
「検索文字:a」「置換え文字:」と置換え文字に何も入れない。
で、やりたいことは任意の文字以降を削除したい。
任意の文字以降とは「任意の文字と行末まで」っていう意味になるから、
「任意の文字と行末で囲まれた文字」を削除となる。
「行末」は正規表現を使うしかない。「行末 = $」
「任意の文字と”$”で囲まれた文字」となり、任意の文字を「a」の場合、「”a”と”$”で囲まれた文字」となる。
次に…その前に囲まれた文字の指定。
「a」と「b」に囲まれた「一文字」は「a.b」
「a」と「b」に囲まれた「複数の文字」は「a.*b」
「a」から「行末」までの「複数の文字」は「a.*$」
「a」と「b」に囲まれた「複数の文字」は「a.*b」
「a」から「行末」までの「複数の文字」は「a.*$」
「任意の文字以降」は「任意の文字と行末で囲まれた文字」となり、
任意の文字を”a”とした場合、「a.*$」でOK。
ということで、「任意の文字以降を削除」は、「検索文字:a.*$」「置換え文字:」とする。
abcdefg
上記で、[d]以降を削除。「検索文字:d.*$」「置換え文字:」
→abc
[d]が消えるのは困る。「検索文字:d.*$」「置換え文字:d」
→abcd