電気ウナギ的○○

About Home

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

shinoda (2015年1月13日 20:03)
日頃、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 は「自分自身のスクリプト名(プログラム名)」が入っている。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3271

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE