<アトミックゼロ幅アサーション>
なんか難しい言葉ですが、要はパターンがどのような場所で一致するかを表す指定のようです。
^
文字列の先頭。複数行オプションが有効の場合は行の先頭。
PS>"abc`ndef" -match '^ab' |
$
文字列の末尾。複数行オプションが有効の場合は行の末尾。
PS>"abc`ndef" -match 'ef$' |
\A
文字列の先頭でマッチ。
PS>"abc`ndef" -match '\Aab' |
\Z
文字列の末尾または末尾の改行の前でマッチ。
PS>"abc`ndef" -match 'ef\Z' |
\z
文字列の末尾でマッチ。
PS>"abcde`n" -match 'de\Z' |
\G
先頭から最後まで指定したパターンの連続を表す指定のようです。
マッチしない箇所が出てきたらそこで終わり。
「Match」クラスなどを使って連続してパターンを検索するのに使用する。
以下はMSDNに載っていたサンプルをPowerShellに変換したものです。
- $str = "capybara,squirrel,chipmunk,porcupin,gopher," +
- "beaver,groundhog,hamster,guinea pig,gerbil," +
- "chinchilla,prairie dog,mouse,rat"
- $pattern = '(\G\w+\s?\w*),?'
- $match = [Regex]::Match($str, $pattern)
- while ($match.Success)
- {
- $match.Groups[1].Value
- $match = $match.NextMatch()
- }
0または1個のカンマで区切られたワード文字(間にスペースが1つ有っても良い)を検索するパターン。ループしてマッチするものをすべて見つける。
途中でマッチしない箇所があるとそこで終了します。
- $str = "capybara,squirrel,chipmunk,porcupin,-gopher," +
\Gの指定がないときはマッチしない箇所は飛ばして最後まで継続します。
\b
ワード境界でのマッチ。
PS>"Power-Shell(V2)" -match '\bShe' |
\B
ワード境界以外でのマッチ。
PS>"Power-Shell(V2)" -match '\BShe' |
0 件のコメント:
コメントを投稿