dotnet:regex

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dotnet:regex [2009/03/02 19:07] ともやんdotnet:regex [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 89: 行 89:
 [C++] [C++]
 <code cpp> <code cpp>
 +using namespace System;
 +using namespace System::Text::RegularExpressions;
 +
 +static void IsMatchFileName(String^ fileName, String^ pattern)
 +{
 + if (Regex::IsMatch(fileName, pattern,
 + RegexOptions::IgnoreCase))   // 大文字/小文字を区別しない
 +    {
 + Console::WriteLine(
 +            "ファイル名: '{0}' はパターン: '{1}' にマッチしました。",
 +            fileName, pattern);
 +    }
 +    else
 +    {
 + Console::WriteLine(
 +            "ファイル名: '{0}' はパターン: '{1}' にマッチしません。",
 +            fileName, pattern);
 +    }
 +}
 +
 +int main(array<System::String ^> ^args)
 +{
 + String^ fileName1 = "AAA_00001.txt";
 + String^ fileName2 = "AAA_00001.txt";
 + // 半角ファイル名の正規表現
 + const String^ TARGET_FILENAME_REGEX = "aaa_\\d{5}.txt";
 + // 全角ファイル名の正規表現
 + const String^ TARGET_FILENAME_MULTI_BYTE_REGEX = "aaa_\\d{5}.txt";
 +
 + // ファイル名のパターンマッチ
 + IsMatchFileName(fileName1, (String^)TARGET_FILENAME_REGEX);
 + IsMatchFileName(fileName2, (String^)TARGET_FILENAME_MULTI_BYTE_REGEX);
 + IsMatchFileName(fileName1, (String^)TARGET_FILENAME_MULTI_BYTE_REGEX);
 + IsMatchFileName(fileName2, (String^)TARGET_FILENAME_REGEX);
 +
 + return 0;
 +}
 </code> </code>
  
行 97: 行 134:
 ファイル名: 'AAA_00001.txt' はパターン: 'aaa_\d{5}.txt' にマッチしません。 ファイル名: 'AAA_00001.txt' はパターン: 'aaa_\d{5}.txt' にマッチしません。
 ファイル名: 'AAA_00001.txt' はパターン: 'aaa_\d{5}.txt' にマッチしません。 ファイル名: 'AAA_00001.txt' はパターン: 'aaa_\d{5}.txt' にマッチしません。
 +</code>
 +
 +===== グループ化構成体を利用した値の抽出 =====
 +[VB]
 +<code vbnet>
 +Imports System
 +Imports System.Text.RegularExpressions
 +
 +Module SampleAppVB
 +    Sub Main()
 +        Dim fileName1 As String = "fileA_20090304_00001.txt"
 +        Dim fileName2 As String = "fileB_20090305_00002.txt"
 +
 +        ' グループ名定義
 +        Const REGEX_GROUP_DATE As String = "date"       ' 日付
 +        Const REGEX_GROUP_COUNTER As String = "counter" ' カウンタ
 +        ' ファイル名の正規表現
 +        Const TARGET_FILENAME_REGEX As String = _
 +            "file[AB]_" & _
 +            "(?<" & REGEX_GROUP_DATE & ">\d{8})_" & _
 +            "(?<" & REGEX_GROUP_COUNTER & ">\d{5}).txt"
 +
 +        ' パターンマッチ情報を取得
 +        Dim mt1 As Match = Regex.Match(fileName1, TARGET_FILENAME_REGEX)
 +
 +        ' 日付、および、カウンタを抽出して表示
 +        Console.WriteLine( _
 +            "ファイル名: '{0}' (日付: '{1}'、カウンタ: '{2}')", _
 +            fileName1, _
 +            mt1.Groups(REGEX_GROUP_DATE).Value, _
 +            mt1.Groups(REGEX_GROUP_COUNTER).Value)
 +
 +        ' パターンマッチ情報を取得
 +        Dim mt2 As Match = Regex.Match(fileName2, TARGET_FILENAME_REGEX)
 +
 +        ' 日付、および、カウンタを抽出して表示
 +        Console.WriteLine( _
 +            "ファイル名: '{0}' (日付: '{1}'、カウンタ: '{2}')", _
 +            fileName2, _
 +            mt2.Groups(REGEX_GROUP_DATE).Value, _
 +            mt2.Groups(REGEX_GROUP_COUNTER).Value)
 +    End Sub
 +End Module
 +</code>
 +
 +[実行結果]
 +<code>
 +ファイル名: 'fileA_20090304_00001.txt' (日付: '20090304'、カウンタ: '00001')
 +ファイル名: 'fileB_20090305_00002.txt' (日付: '20090305'、カウンタ: '00002')
 </code> </code>
  • dotnet/regex.1235988436.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)