トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
Perl
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ Pattern


  POINT
    Pattern 結合演算子
    
  SYNTAX
    =~ 

  DESC
    左辺に指定されたデータに 右辺のパターン処理の結果を代入する



___

■ 置換(Substitute)

SYNTAX s/regexp/置換文字列/

    # this is a book
     $str = "This is a pen.";

     # 置換した結果で 左辺に代入される
     $str =~ s/pen/book/;

  POINT
    区切り文字は / 以外も OK ( m と同じ )

    # () で "くくる" こともできる
    s/text/txt/
    s(text)(txt)
    s(text)/txt/
    # e を指定すると Perl の式 として扱われる

    
    #  print があるため出力される
    #
    s/(.+)\..{3}/"print \1\n"/e;

___

■ 照合(Match)

SYNTAX m/PATTERN/OPT RET true : マッチ false : マッチせず POINT m の直後の区切り文字は任意 英数字 + " " 以外 [^[:alnum:] ]
    # path を指定するなら [/] 以外を使うこと
    #    MetaCharacter を指定すると MetaCharacter としての意味がなくなる
    $ret =~ m|/var/foo/.*|

    # Default "/" を指定するなら m は不要
    #
    $ret =~ m/^foo/
    $ret =~ /^foo/


    # 左辺を省略すると  $_ 扱いになる
    #  
    $_ =~ m/^foo/
    m/^foo/
    /^foo/
# 修飾子 i : Insentive o : Once ( Pattern 中の変数展開を一度しかしない ) g : Global ( 照合を Global にする == 繰り返す ) m : Multi Line 文字列を複数行として扱う s : Single Line 文字列を単一行として扱う x : Xtended ( Comment が利用可能な Regexp ) # i がないと 煩雑になる < (H|h)(R|r)> # これで OK < HR> # Pattern 中の 変数展開 を一度にすることで高速化する # 再評価が必要なら, o をつけないこと # RET # /var/log # /maillog # $str = "/var/log/maillog"; while ( $str =~ m|/.*?log| ) { print "$1\n" } # m が指定されていると \n を含む場合 # 複数行としてみなす # ^$ にマッチする # $str = foo\nbar\ngoo # これと同じ foo bar goo # s # \n があっても のマッチの対象になる #str = "foo\nbar\ngoos\nfoo\nbar\ngoos"; while ( $str =~ m/.+?s/sg ) { print "$& \n"; } # x # indent など comment の記述も可能になる # " " は無視 # " " を指定するなら \ する # []文字クラス内なら " "扱い while ( $str =~ m| ( / # Directory 区切り文字 / .*? # 任意の文字列 log # 文字列 log で終わる ) |xg) { print "\1\n"; }
___

■ 文字変換(Translate)

SYNTAX tr/SRC/DST
    $str = "abc";
    $str =~ tr/abc/xyz/;


    # 文字クラスの表記もできる
    $str =~ tr/a-z/A-Z/;

    # Modifier

    c : Complement
    d : Delete ( 検索リストの文字が変換リストになければ削除 )
    s : 重複した場合 1 つにまとめる

















NINJAIDX 7