差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| dotnet:regex [2009/03/02 16:51] – 作成 ともやん | dotnet:regex [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== Regex クラス (System.Text.RegularExpressions) ====== | ====== Regex クラス (System.Text.RegularExpressions) ====== | ||
| ===== 大文字/ | ===== 大文字/ | ||
| + | Windowsのファイルシステムでは、ファイル名やフォルダ名の比較を行う際に大文字/ | ||
| + | \\ | ||
| + | 以下の例では、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 = " | ||
| + | ' 全角ファイル名の正規表現 | ||
| + | Const TARGET_FILENAME_MULTI_BYTE_REGEX As String = " | ||
| + | |||
| + | ' ファイル名のパターンマッチ | ||
| + | IsMatchFileName(fileName1, | ||
| + | IsMatchFileName(fileName2, | ||
| + | IsMatchFileName(fileName1, | ||
| + | IsMatchFileName(fileName2, | ||
| + | End Sub | ||
| + | End Module | ||
| + | </ | ||
| + | |||
| + | [C#] | ||
| + | <code csharp> | ||
| + | using System; | ||
| + | using System.Text.RegularExpressions; | ||
| + | |||
| + | namespace SampleApplicationCS | ||
| + | { | ||
| + | public class SampleAppCS | ||
| + | { | ||
| + | // ファイル名がパターンにマッチするかをテストしてコンソールに結果を出力 | ||
| + | private static void IsMatchFileName(string fileName, string pattern) | ||
| + | { | ||
| + | if (Regex.IsMatch(fileName, | ||
| + | RegexOptions.IgnoreCase)) | ||
| + | { | ||
| + | Console.WriteLine( | ||
| + | " | ||
| + | fileName, pattern); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine( | ||
| + | " | ||
| + | fileName, pattern); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | static void Main(string[] args) | ||
| + | { | ||
| + | string fileName1 = @" | ||
| + | string fileName2 = @" | ||
| + | // 半角ファイル名の正規表現 | ||
| + | const string TARGET_FILENAME_REGEX = @" | ||
| + | // 全角ファイル名の正規表現 | ||
| + | const string TARGET_FILENAME_MULTI_BYTE_REGEX = @" | ||
| + | |||
| + | // ファイル名のパターンマッチ | ||
| + | IsMatchFileName(fileName1, | ||
| + | IsMatchFileName(fileName2, | ||
| + | IsMatchFileName(fileName1, | ||
| + | IsMatchFileName(fileName2, | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | [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; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | [実行結果] | ||
| + | < | ||
| + | ファイル名: | ||
| + | ファイル名: | ||
| + | ファイル名: | ||
| + | ファイル名: | ||
| + | </ | ||
| + | |||
| + | ===== グループ化構成体を利用した値の抽出 ===== | ||
| + | [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 | ||
| + | </ | ||
| + | |||
| + | [実行結果] | ||
| + | < | ||
| + | ファイル名: | ||
| + | ファイル名: | ||
| + | </ | ||