差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
dotnet:regex [2009/03/02 19:04] – ともやん | dotnet:regex [2009/03/04 18:43] – ともやん | ||
---|---|---|---|
行 4: | 行 4: | ||
\\ | \\ | ||
以下の例では、Regex クラスの引数に **RegexOptions.IgnoreCase** を指定することで、大文字/ | 以下の例では、Regex クラスの引数に **RegexOptions.IgnoreCase** を指定することで、大文字/ | ||
- | \\ | + | |
+ | [VB] | ||
+ | <code vbnet> | ||
+ | Imports System | ||
+ | Imports System.Text.RegularExpressions | ||
+ | |||
+ | Module SampleAppVB | ||
+ | Private Sub IsMatchFileName(ByVal fileName As String, ByVal pattern As String) | ||
+ | If Regex.IsMatch(fileName, | ||
+ | RegexOptions.IgnoreCase) Then ' | ||
+ | Console.WriteLine( _ | ||
+ | " | ||
+ | fileName, pattern) | ||
+ | Else | ||
+ | Console.WriteLine( _ | ||
+ | " | ||
+ | fileName, pattern) | ||
+ | End If | ||
+ | End Sub | ||
+ | |||
+ | Sub Main() | ||
+ | Dim fileName1 As String = " | ||
+ | Dim fileName2 As String = " | ||
+ | ' 半角ファイル名の正規表現 | ||
+ | Const TARGET_FILENAME_REGEX As String = "aaa_\d{5}.txt" | ||
+ | ' 全角ファイル名の正規表現 | ||
+ | Const TARGET_FILENAME_MULTI_BYTE_REGEX As String = " | ||
+ | |||
+ | ' ファイル名のパターンマッチ | ||
+ | IsMatchFileName(fileName1, | ||
+ | IsMatchFileName(fileName2, | ||
+ | IsMatchFileName(fileName1, | ||
+ | IsMatchFileName(fileName2, | ||
+ | End Sub | ||
+ | End Module | ||
+ | </ | ||
[C#] | [C#] | ||
<code csharp> | <code csharp> | ||
行 48: | 行 84: | ||
} | } | ||
} | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | [C++] | ||
+ | <code cpp> | ||
+ | using namespace System; | ||
+ | using namespace System:: | ||
+ | |||
+ | static void IsMatchFileName(String^ fileName, String^ pattern) | ||
+ | { | ||
+ | if (Regex:: | ||
+ | RegexOptions:: | ||
+ | { | ||
+ | Console:: | ||
+ | " | ||
+ | fileName, pattern); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | Console:: | ||
+ | " | ||
+ | fileName, pattern); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | int main(array< | ||
+ | { | ||
+ | String^ fileName1 = " | ||
+ | String^ fileName2 = " | ||
+ | // 半角ファイル名の正規表現 | ||
+ | const String^ TARGET_FILENAME_REGEX = " | ||
+ | // 全角ファイル名の正規表現 | ||
+ | const String^ TARGET_FILENAME_MULTI_BYTE_REGEX = " | ||
+ | |||
+ | // ファイル名のパターンマッチ | ||
+ | IsMatchFileName(fileName1, | ||
+ | IsMatchFileName(fileName2, | ||
+ | IsMatchFileName(fileName1, | ||
+ | IsMatchFileName(fileName2, | ||
+ | |||
+ | return 0; | ||
} | } | ||
</ | </ | ||
行 57: | 行 134: | ||
ファイル名: | ファイル名: | ||
ファイル名: | ファイル名: | ||
+ | </ | ||
+ | |||
+ | ===== グループ化構成体を利用した値の抽出 ===== | ||
+ | [VB] | ||
+ | <code vbnet> | ||
+ | Imports System | ||
+ | Imports System.Text.RegularExpressions | ||
+ | |||
+ | Module SampleAppVB | ||
+ | Sub Main() | ||
+ | Dim fileName1 As String = " | ||
+ | Dim fileName2 As String = " | ||
+ | |||
+ | ' グループ名定義 | ||
+ | Const REGEX_GROUP_DATE As String = " | ||
+ | Const REGEX_GROUP_COUNTER As String = " | ||
+ | ' ファイル名の正規表現 | ||
+ | Const TARGET_FILENAME_REGEX As String = _ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | |||
+ | ' パターンマッチ情報を取得 | ||
+ | Dim mt1 As Match = Regex.Match(fileName1, | ||
+ | |||
+ | ' 日付、および、カウンタを抽出して表示 | ||
+ | Console.WriteLine( _ | ||
+ | " | ||
+ | fileName1, _ | ||
+ | mt1.Groups(REGEX_GROUP_DATE).Value, | ||
+ | mt1.Groups(REGEX_GROUP_COUNTER).Value) | ||
+ | |||
+ | ' パターンマッチ情報を取得 | ||
+ | Dim mt2 As Match = Regex.Match(fileName2, | ||
+ | |||
+ | ' 日付、および、カウンタを抽出して表示 | ||
+ | Console.WriteLine( _ | ||
+ | " | ||
+ | fileName2, _ | ||
+ | mt2.Groups(REGEX_GROUP_DATE).Value, | ||
+ | mt2.Groups(REGEX_GROUP_COUNTER).Value) | ||
+ | End Sub | ||
+ | End Module | ||
+ | </ | ||
+ | |||
+ | [実行結果] | ||
+ | < | ||
+ | ファイル名: | ||
+ | ファイル名: | ||
</ | </ |