0

ここのExcelVBAフォーラムで、誰かが以下のような文字列のマッチングについて助けを求めてきました。

Examples:
ACBD,AC - Match
ACBD,CA - Match
ACBD,ADB - Match
AC,ABCD - Match
ABC, ABD - No Match

ルールは、一方の文字列のすべての文字がもう一方の文字列に含まれていることを条件に文字列が一致することです(つまり、2つの文字列のいずれかが他方のすべての文字を含む)

それで、正規表現が答えかもしれないと思いましたが、私はそれについての絶対的な初心者ですので、助けていただけますか?

両方のstrtingsを互いに一致させることは可能ですか?

フィリップに感謝します

4

2 に答える 2

1

正規表現は確かにチェックを容易にしますが、追加のコーディングなしではこれが不可能だとは思いません。次のいずれかを実行するには、コードが必要です。

1)各文字を個別に一致させてから、すべての一致が真であるかどうかを確認します。2)可能なすべての順序順列で文字の順序を再配置し、各順序をチェックして、一致するかどうかを確認します。

いずれにせよ、一致の可能なすべての要件をカバーするために、「チェック」文字列を操作する必要があります。

「これらの文字のいずれか」または「これらの文字のすべてをこの順序で」と要求した場合、追加のロジックなしでそれを実行できる可能性がありますが、「これらの文字のいずれかを任意の順序で」必要とするため、入力を操作する必要があります。

于 2013-03-12T17:02:15.510 に答える
0

VBAでの回答はありませんが、実行する必要のある手順を説明できます。

要素ごとに、文字をアルファベット順に並べ替えた変数を作成します。VBAには関数が組み込まれていないため、これを行うには、ネットで並べ替え関数を検索する必要があります。

両方の変数の各文字の間に。*を挿入します-これらはあなたのregexです。このステップをsort関数に組み込むことをお勧めします。

次に、配列の要素1を2番目の要素から作成された正規表現変数と照合し、2番目の要素を最初の要素と照合するだけです。

于 2013-03-12T17:33:32.833 に答える