LINQに正規表現を含めた抽出方法

image

こんばんは。
いつもお世話になっております。
皆様是非知恵をお貸しください。

—質問—

dtAに対して行の繰り返しを行い、
dtA品番 = AAABBB123の場合、
dtBでAAA???123(?を.にReplace)のある行まで検索を行い、マッチした行を抽出したいのです。
(画像では1列のみですが複数列存在しています。)

ーーー現状—
実データでは何千行とあり、
dtAの品番をdtBの行数マッチするまで検索×dtAの行数行っています。
そのため果てしない時間がかかっているという状態です。

—理想—
代入アクティビティ1つで、
dtAの品番をdtB全体に対してlinqと正規表現を使用しマッチした行を抽出したい。

以上です。
分かりにくい説明で申し訳ないです。
データの公開等が出来ないため雰囲気にはなりますが、
よろしくお願いいたします。

1 Like

こんにちは

結果はdtBをフィルターしたもので良いでしょうか?そうであれば例えば以下のようになるのではと思います。

dtB = dtB.AsEnumerable.Where(Function(r) dtA.AsEnumerable.Any(Function(r2) System.Text.RegularExpressions.Regex.IsMatch(r2("品番(列名)").ToString,r("品番(列名)").ToString.Replace("?",".")))).CopyToDataTable

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.