Perl と VB.NET の正規表現(一番簡単な例)

日頃、VB.NET で正規表現をあまり使うことがないので、単純な文字列の抽出でも「どうすんだっけ?」とググっちゃうことがあるので、たまにはちゃんとメモっておこう。

文字列 "123-456-78" を 123、456、78 の文字列に分解し、それぞれ key1、key2、key3 へ代入するのであれば、

・Perl
my $t = "123-456-78";
my($key1, $key2, $key3) = ();
if ($t =~ /^(\d+)\-(\d+)\-(\d+)$/) {
($key1, $key2, $key3) = ($1, $2, $3);
}

・VB.NET
Dim t as String = "123-456-78"
Dim r As New Regex("^(\d+)\-(\d+)\-(\d+)$")
Dim m As Match = r.Match(t)
Dim key1 As Integer = m.Groups(1).Value
Dim key2 As Integer = m.Groups(2).Value
Dim key3 As Integer = m.Groups(3).Value

となる。

Perl と VB.NET のどちらも、マッチした文字列のインデックスは 1から始まる($1 = m.Groups(1))ので、そこはわかりやすいだろう。ちなみに、VB.NET の場合、m.Groups(0)にはマッチングした文字列全体が入っている。上の例で言えば "123-456-78" だ。
Perl にはこういう「マッチした文字列全体」という、実際何に使うのかよくわからないものが格納される変数は無い。
ちなみに、Perl で $0 は「自分自身のスクリプト名(プログラム名)」が入っている。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: Perl と VB.NET の正規表現(一番簡単な例)

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/3271

コメントする

このブログ記事について

このページは、shinodaが2015年1月13日 20:03に書いたブログ記事です。

ひとつ前のブログ記事は「WordPress で、ログイン画面だけが日本語表示されない」です。

次のブログ記事は「やっと「赤まる 大手町店」に飲みにいくことができたのだ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら