1回目は例えば
Dim r As New System.Text.RegularExpressions.Regex("\d+(?=.png)",
System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Dim mc As System.Text.RegularExpressions.MatchCollection = r.Matches(output)
にして検索結果をコレクションで取得出来るのですが、
2回目以降、「検索条件だけ」を変えて検索するにはどうしたら良いのですか?
Dim r2 As New System.Text.RegularExpressions.Regex("abd",
System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Dim mc2 As System.Text.RegularExpressions.MatchCollection = r.2Matches(output)
とすれば出来るのですが、何度も条件変更があるとコードが長すぎて見づらくなってしまいます。
最初に宣言したr,mcを再利用したいと思っています。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
多分と言うか確実と思いますが正規の方法ではないでしょうね。
初級レベルは邪道ですから(無能なので)。
Imports System.Text.RegularExpressions '記載した方がすっきりするのでは?
Dim str As String() = New String() {"123.png", "abdgh", "456.jpg", "852.png", "yzabdgh"}
For Each st As String In New String() {"\d+(?=\.png)", "abd"}
For Each s In str
Dim re As New Regex(st, RegexOptions.IgnoreCase)
Dim mc As MatchCollection = re.Matches(s)
For Each m As Match In mc
Console.WriteLine("Pattern:{0} 検索値:{1} 抽出値:{2}", st, s, m.Value)
Next
Next
Next
結果:
Pattern:\d+(?=\.png) 検索値:123.png 抽出値:123
Pattern:\d+(?=\.png) 検索値:852.png 抽出値:852
Pattern:abd 検索値:abdgh 抽出値:abd
Pattern:abd 検索値:yzabdgh 抽出値:abd
正規の方法では無いのですいね、、、
確かにImports System.Text.RegularExpressionsを記載した方がすっきりします。
ありがとうございます。
No.1
- 回答日時:
> 正規表現を表す Regex オブジェクトをインスタンス化する。
> れを行うには、正規表現パターンを Regex コンストラクターに渡します。
> Regex オブジェクトは変更できません。
> 正規表現を使用して Regex オブジェクトをインスタンス化する場合、そのオブジェクトの正規表現は変更できません。
以下、いろいろと書いてあるので、一読することをおすすめします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) 正規表現を用いての並び替え 7 2022/04/04 09:27
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
【エクセルのマクロ】クリップ...
-
Excel VBAでマウスの左クリック...
-
文字列で小数点以下の0を削除し...
-
エクセルのデータをwebフォーム...
-
Access からオブジェクトとして...
-
エクセルVBAでセル番地を指定し...
-
コードでオブジェクトを最前面に
-
WSH or VBの質問
-
起動済のIEから.NET Framework...
-
日本語の文字化けを直す方法
-
【エクセル】複数のTextBoxに共...
-
Accessのフォーム上にエクセル...
-
DLLの共有メモリと排他処理???
-
アクセス 名前のつけ方について。
-
構造体の静的な初期化
-
現在アクティブになっているオ...
-
Excelを閉じるときVBAプロジェ...
-
PowerpointVBAで指定のShapeオ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスVBAのMe!と[ ]
-
VBA エンターキーでイベントに...
-
【エクセルのマクロ】クリップ...
-
エクセルVBAでセル番地を指定し...
-
Excel2007 でのチェックボック...
-
文字列で小数点以下の0を削除し...
-
日本語の文字化けを直す方法
-
Excel VBAでマウスの左クリック...
-
エクセルのデータをwebフォーム...
-
Access からオブジェクトとして...
-
コードでオブジェクトを最前面に
-
Accessのフォーム上にエクセル...
-
構造体の静的な初期化
-
【エクセル】複数のTextBoxに共...
-
ユーザーフォームのインポート...
-
PowerpointVBAで指定のShapeオ...
-
現在アクティブになっているオ...
-
[C#] DataGridViewの項目名
-
Excel VBA でPictureBoxオブジ...
-
Excelを閉じるときVBAプロジェ...
おすすめ情報