perl > regex

「perl/regex」の編集履歴(バックアップ)一覧はこちら

perl/regex」(2011/07/18 (月) 22:40:06) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*正規表現 **m演算子 mからはじまるマッチング。検索パターンの指定に使う。 m/regex/[修飾子] mの修飾子の種類 |i|大文字と小文字を区別しない| |m|文字列を複数行として扱う。(^と$が改行ごとにマッチする)| |o|パターンのコンパイルを一度しか行わない| |s|文字列を単一行として扱う。(^と$が最初と最後にしかマッチしない)| |x|拡張正規表現をつかう。(空白を無視するようになる。エスケープと[ ]以外)| |g|すべてのマッチを行う。配列でとればマッチしたものがとれ、スカラでとれば、true or falseがとれる| mの後をスラッシュ/以外にすれば、それがデリミタとなります。 逆にデリミタを変えないのであれば、mはいらない。 **s演算子 sからはじまるマッチング。置換処理に使う。 これもデリミタの変更OK。 s/regex/replaceto/[修飾子] sの修飾子の種類 |e|replacetoの式を評価する(足し算とか)| |i|大文字と小文字を区別しない| |m|文字列を複数行として扱う。(^と$が改行ごとにマッチする)| |o|パターンのコンパイルを一度しか行わない| |s|文字列を単一行として扱う。(^と$が最初と最後にしかマッチしない)| |x|拡張正規表現をつかう。(空白を無視するようになる。エスケープと[ ]以外)| |g|マッチしたものをすべて置換する| s演算子を使って、こんなこともOK。 perl -ne 'print if s/ABC/DEF/;' names.txt ABCにマッチするかどうかのif文にしておいて、printさせるのはDEFに置換後という技。 **パターン照合演算子 |$hoge =~ /abc/|$hogeがabcを含むかどうかの条件式| |$hoge !~ /abc/|$hogeがabcを含まないかどうかの条件式| |$hoge =~ s/abc/def/|$hogeのabcをdefに置換| 暗黙的にこれらは使っていた。 /abc/ が $_ ~= /abc/ と同じ意味だった。 **tr, y trとyは同じ。 置換文字列の文字を1つずつ置換する。 返り値は置換した文字数。 -dオプション --検索マッチングしなかった文字は削除 -cオプション --マッチングの意を逆に。マッチング条件にあてはまらないものを置換する。 -sオプション --同じ文字が繰り返されている場合にそれをマージする。
*正規表現 **m演算子 mからはじまるマッチング。検索パターンの指定に使う。 m/regex/[修飾子] mの修飾子の種類 |i|大文字と小文字を区別しない| |m|文字列を複数行として扱う。(^と$が改行ごとにマッチする)| |o|パターンのコンパイルを一度しか行わない| |s|文字列を単一行として扱う。(^と$が最初と最後にしかマッチしない)| |x|拡張正規表現をつかう。(空白を無視するようになる。エスケープと[ ]以外)| |g|すべてのマッチを行う。配列でとればマッチしたものがとれ、スカラでとれば、true or falseがとれる| mの後をスラッシュ/以外にすれば、それがデリミタとなります。 逆にデリミタを変えないのであれば、mはいらない。 **s演算子 sからはじまるマッチング。置換処理に使う。 これもデリミタの変更OK。 s/regex/replaceto/[修飾子] sの修飾子の種類 |e|replacetoの式を評価する(足し算とか)| |i|大文字と小文字を区別しない| |m|文字列を複数行として扱う。(^と$が改行ごとにマッチする)| |o|パターンのコンパイルを一度しか行わない| |s|文字列を単一行として扱う。(^と$が最初と最後にしかマッチしない)| |x|拡張正規表現をつかう。(空白を無視するようになる。エスケープと[ ]以外)| |g|マッチしたものをすべて置換する| s演算子を使って、こんなこともOK。 perl -ne 'print if s/ABC/DEF/;' names.txt ABCにマッチするかどうかのif文にしておいて、printさせるのはDEFに置換後という技。 **パターン照合演算子 |$hoge =~ /abc/|$hogeがabcを含むかどうかの条件式| |$hoge !~ /abc/|$hogeがabcを含まないかどうかの条件式| |$hoge =~ s/abc/def/|$hogeのabcをdefに置換| 暗黙的にこれらは使っていた。 /abc/ が $_ ~= /abc/ と同じ意味だった。 **tr, y trとyは同じ。 置換文字列の文字を1つずつ置換する。 返り値は置換した文字数。 -dオプション --検索マッチングした文字は削除 -cオプション --マッチングの意を逆に。マッチング条件にあてはまらないものを置換する。 -sオプション --同じ文字が繰り返されている場合にそれをマージする。 tr/a-z/A-Z/; print; tr/ //d; print; tr/0-9/*/c; print; tr/:/:/s; print;

表示オプション

横に並べて表示:
変化行の前後のみ表示: