トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

9-2 US郵便番号問題

正規表現パズル

先頭から5桁区切りのUS郵便番号の並びから
先頭が44のUS郵便番号を検索する。

詳説正規表現2版の202ページ
詳説正規表現3版の204ページ
を参考にさせていただきました。


検索結果

03824531449411615213441829503544272752010217443235
                    ^^^^^     ^^^^^


対象データ

03824531449411615213441829503544272752010217443235


正規表現

(?<=^([0-9]{5})*)44[0-9]{3}


解説

.NETの正規表現では、可変長の戻り読みが使えるので使用してます。

JavaとC#とVB.NETとOracleとRubyでの正規表現の使用例


VB2003でのソースと実行結果

Imports System.Text.RegularExpressions

Module Module1

    Sub Main()
        Dim str As String = "03824531449411615213441829503544272752010217443235"
        Dim ObjMatches As MatchCollection = Regex.Matches(str, "(?<=^([0-9]{5})*)44[0-9]{3}")

        For i As Integer = 0 To ObjMatches.Count - 1
            Console.WriteLine(ObjMatches(i))
        Next i

        Console.ReadLine()
    End Sub
End Module

実行結果
----------------------
44182
44272