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

■ MetaChara


  DESC
    特定の表現方法を示す文字

  WARNING
    meta chara は[ 正規表現可能な箇所 ]に記述したときに meta chara の意味になる
    Command によって正規表現の扱いがちがいます
    規格は完全に統一されてません

___

■ ^

DESC 行頭 // ^# 否定 // [^a-c], [^a]
___

■ $

DESC 行末( 文字列の末尾 ) // .jpg$ WARNING 改行コードにマッチするわけではない
___

■ .

DESC 任意の一文字 // ... 任意の3文字 WARNING . == 表示可能な文字 shell のpath 展開では ? DESC 直前の文字の0回以上の繰り返し ab* -> ab, abb, abbb, a 2. 0 文字以上の任意の文字 ( shell )
___

■ ?

DESC 直前の文字の0, 1 回の繰り返し test.html? // test.htm || test.html POINT あってもなくてもよい場合に便利 WARNING 基本正規表現では 単なる文字として扱う 2. 任意の1文字 ( shell )
___

■ -

DESC 前後に指定された文字の範囲 [ 0-9 ] WARNING 文字コードに依存 POINT 次のケースは通常文字として扱う [a-c], [-abcdt], [abcde-]
___

■ []

DESC []内で記述された一文字 POINT 文字クラスにposix ブラケットを指定可能 ( egrep ) 2. ^, - は[]内ではmeta chara としての扱い 3. 他のmeta chara は[] 内では通常文字としての扱い -> 単なる文字として扱うことができる
___

■ |

DESC | の前後の文字列の片方 WARNING | の前後の文字列、正規表現は全体が考慮される
    BAD
    slee|ap -> slee || ap
    OK
    sle(e|a)p -> sleep || sleap
    基本正規表現では通常文字として扱う( grep -> egrep )
___

■ ()

DESC meta chara の影響範囲を指定 (foo|bar) 2. 後方参照 POINT 基本正規表現では () を通常文字として扱う場合は \(, \) とする
___

■ \< \>

DESC 単語の(先頭|末尾)の空文字にマッチ
  \< no // nothing, nobody,
  \< no\> // no
POINT < , > は通常文字としての扱い
___

■ min max

SYNTAX {min,max} DESC 直前の文字の繰り返し回数
  # ee, eee, eeee, eeeee
  # e を 2 〜 5 回の繰り返し
  e{2, 5}

  # [0:3]
  e{,3} 


  # RET : aaa
  echo "aaa" | grep "a\{3,4\}"

___

■ \b

DESC 単語の境界にマッチ( boundary ) 単語とは [a-zA-Z0-9] 以外の文字 == [:./\ \n] // 制御文字も含む 単語の(先頭|末尾)とは 上記の文字列が切り替わる箇所 空文字とは 文字の間にある論理的な文字 WARNING 空文字 != ( [a-zA-Z0-9] | [:./\ \n] ) 単語の境界にマッチ == 単語 ^単語の間の空文字にマッチ ie : 空集合 word -> 行頭 n w n o n r n d 行末 WARNING 制御文字を意味する\b もある [\b] は単語境界を意味 grep は\b:backslash は非サポート
___

■ \d

DESC 数字 1文字 Digit POINT == [0-9], [[:digit:]] WARNING grep では使用できない ?
___

■ \D

DESC 数字以外 1文字 POINT == [^0-9], [^[:digit:]]
___

■ \s

DESC 空白文字の 1文字 POINT 空白文字 == [ \t\n\r\f] == [[:space:]] POINT \S == ^空白文字
___

■ \w

DESC alphabet || 数字 1文字 ( word ) POINT [a-zA-Z0-9] == [[:alnum:]] _ 含む POINT grep で使用可能 制御文字の表現 なぜ制御文字をサポートする? tag, 改行にまたがるパターンを指定できる database file 制御文字の表現方法 \x のようにescape する \a == 0x07 \b == 0x08 \e == 0x1B [ESC] \f == 0x0C [FF] \n == 0x0A [LF]( unix ), 0x0D0x0A[CRLF]( win ) POINT 論理的な改行コードを意味、platform に非依存[ 改行 == \n ] \r == 0x0D [CR] \t == 0x09 [HT] \s : 空白文字 ( 正規表現のmeta chara ) POINT meta chara にbindされない制御文字は文字コードで直接指定 foo\tbar -> foo\011bar // 8進数で指定する場合3 桁で WARNING grep, emacs では失敗 foo\tbar -> foo\x09bar // 16進数で指定する場合 meta chara のエスケープ 目的 meta chara として使用される文字を通常の文字として扱うため $100 // 行末 + 100 \$100 // $100 \100 // 後方参照 \\100 // \100 \b // 単語境界 \\b // \b posix ブラケット表示 目的 code 体系に依存しない文字クラスの表現をするため [0-9] == code 0 から code 9 の範囲の文字コード, != [0< =nr< =9] POINT よく使用される文字code( ASCII がbase == ASCII code 体系 ) ShiftJIS EUC Unicoord DESC [[:xxx:]], xxx 論理的な文字セットを表す 文字自体ではない local に依存 [[:upper:]] 指定した文字コードの大文字 != alphabet 大文字 ( ASCII code 体系 ) alnum : alphabet + nr cntrl : 制御文字[\b \n \t \e] lower : alphabet 小文字 space : blank + [\n] alpha : digit : nr print : [[:graph:]] + SPC + (TAB?) upper : alphabet 大文字 blank : SPC + TAB, [^\n] graph : 表示可能文字, [[:alnum:]] + [|&*] punkt : 英記号, 表示可能文字 && [[:alnum:]] || SPC でない xdigit : 16進表記, [0-9a-fA-F], perl only word : word == \w 基本正規表現 拡張正規表現 WARNING 拡張 != 基本 + α , ( 混在している ) list . ○ ○ * ○ ○ + - ○ // == {1,} ? - ○ // == {0,1} {min,max} \{\} ○ // meta chara として扱うため \ する( 逆? ) ^ ○ ○ $ ○ ○ [^] ○ ○ [-] ○ ○ () \(\) ○ // meta chara として扱うため \ する( 逆? ) | - ○ 後方参照 ○ - 各tool の 正規表現のサポート WARNING toolが基本正規表現, 拡張正規表現の規格に一致する訳ではない 基本正規表現 sed, ed 拡張正規表現 egrep list egrep sed emacs . ○ ○ ○ * ○ ○  ○ + ○ \? ○ ? ○ \? ○ {min,max}  ○ ○ ○ // meta chara として扱うため \ する( 逆? ) ^ ○ ○ ○ $ ○ ○ ○ [^] ○ ○ ○ [-] ○ ○ ○ () ○ \(\) \(\)// meta chara として扱うため \ する( 逆? ) | ○ \| \| 後方参照 ○ ○ ○ \< \> ○ ○  ○ {}     ○ \{\} - // emacs 対応?, {}が文字のケースが多い-> \ \b\B ○ ○ ○ \d\D - - - \s\S - - - \w\W ○ ○ ○ posix bra ○ column DFA : 決定性有限オートマトン -> 平行処理 NFA : 非決定性有限オートマトン -> 逐次処理( back track )
___

■ Shell.の.MetaChara

DESC file path の正規表現のため command line 変換 は [*] してしまえば けっこういけます
    *  :  0 コ以上の任意の文字
    ?  :  任意の1文字
    [] : []内の任意の文字
            [^xyz], [!xyz], -> [^xyz] で統一
POINT path名置換に失敗しても、そのままの引数がcmdにわたる

    # echo を利用して結果が見れます
    echo *.htm -> foo.htm bar.htm

    # 失敗するとそのままかえる
    echo *.htm_xxx -> *.htm_xxx
    
    # file path の変換に使う
    cp -upv /work/dust/foo/bar/kosinpri/*.jsp $dst/jsp

    # FilePath にマッチするなら Current Directory でなくてもOK
    ls ./sub/*.txt


POINT Shell の CmdLine も WildCard 展開をする // shopt == shell option // 以下のものを .sh にいれておくと. shell の制御が可能 shopt -s nullglob で cmd line の処理を終了 shopt -s igncr $SHELLOPTS igncr を いれることで CRLF の CR を無視. WARNING cmd の正規表現と区別する egrep 'foo*' file // 'foo*' の * はgrepの正規表現
___

■ {}.brace.展開

DESC []内, で区切った文字列を順に展開
    /home/{bin, sbin}
    ->
    /home/bin
    /home/sbin
WARNING regex の {}とは異なる 行頭と行末, 空文字 行とは [\n]の次の文字から次の[\n]が現れるまでのdata POINT 多くの toolは行単位で textを処理 論理的な行頭 特定の文字に依存しない論理的な行頭 WARNING 行頭の文字コードがあるわけではない POINT foo bar -> ^foo bar と考える
___

■ 後方参照

DESC 後で参照するptn を()をつけて、\nで参照
  aaa.htm,aaa.jpg のような組み合わせのptn表現可能
___

■ 最長一致と最短一致

DESC ptn マッチにおいて、できるだけ長く一致する動作 [*?+{min,max}]時に機能 tool 間でほぼ共通の動作 tom aaa(bbb) cccc) sed 's/aaa.*)/out' file -> tom out
___

■ 最短一致の指定

aaa.*) -> aaa.*?) : perl 互換のtoolでサポート POINT sed 'a/aaa[^\)]/out' file : [)]以外の文字と明示する
















NINJAIDX 3