-match演算子の意外(?)な使い方 - PowerShell Scripting Weblog

2009/12/03

PowerShellには色々な演算子がありますが、その中のひとつに、ある文字列が正規表現にマッチするかどうかを判定する-match演算子というのがあります。使い方は、

"文字列" -match "正規表現"

です。たとえば、文字列にGUIDが含まれるかどうかを調べるには

"これはGUIDを含む文字列です。771d8236-9cc9-46d0-b78c-571746f81393とかね!" -match "[A-Fa-f0-9]{8}\-[A-Fa-f0-9]{4}\-[A-Fa-f0-9]{4}\-[A-Fa-f0-9]{4}\-[A-Fa-f0-9]{12}"

とすると、Trueと表示されます。

ちなみに、一度-match演算子を使うと$matchesというHashtable型のシェル変数に、マッチ情報が入ります。この場合、$matches[0]にGUIDが入ります。サブ式を定義してある場合、$matches[1],$matches[2]...にそれらの値が入ります。ただし$matchesには最初のマッチ情報しか入らないので複数のマッチがある場合はあまり使えないです。素直に

$regex=[regex]"a" 
$regex.Matches("aaa")|ForEach{$_.value}

とかしたほうがいいです。

ところで、-match演算子の左辺には実は配列も指定できます。たとえば、

 "aa1","aaa","2","b" -match "\d"

とすると、

aa1
2

と表示されます。\dは数字が含まれるという正規表現ですが、これを配列に対してかけると、True/Falseではなくマッチした配列要素を返します。これ、私知らなかったんです!なかなか便利だと思うのでぜひつかってみてください。なおこの場合$matchesには何も入りません。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2009/12/03/183512.aspx

トラックバック

トラックバックはまだありません

トラックバックPing:


コメント

1 :ブランドバッグスーパーコピー:2018/10/22 0:14:31
日本超人気スーパーコピーブランド時計激安通販専門店
2018年最高品質時計コピー、国際ブランド腕時計コピー、
業界唯一無二.世界一流の高品質ブランドコピー時計。

2 :エルメス スーパーコピー 専門 ao入試:2018/11/19 4:00:22
注文から確認、発送までとても敏速でした(^^)お店の対応も丁寧で、とても信頼出来ます。
商品が写真で見るより綺麗で嬉しいビックリがありました。
エルメス スーパーコピー 専門 ao入試 https://www.kopii.net/products/p1/1/1/9256.html

3 :スーパーコピー フェンディ tシャツ:2018/11/19 21:12:56
祭日に購入したのに翌日に届けていただきました。
素早い対応ありがとうございます。
また、購入品についても記載通りの状態(未使用品)でありがとうございました。
【送料無料】セイコー 時計をセール価格で販売中♪セイコー 時計 セイコーファイブ デイデイト SNK393KC ブラックダイアル ステンレススチール オートマ メンズ 新品 未使用 ウォッチ SEIKO 5
紛失してしまったので
以前にも同じ機種を使用していました。
紛失してしまい同じ品物を探して購入しました。
コスパが非常に良いと思っています。
スーパーコピー フェンディ tシャツ https://www.kopii.net/products/p2/1/index_8.html


コメントをどうぞ

名前 (省略可) :
E-mail or URL (省略可) :


古い記事へ | 新しい記事へ


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Books

Twitter