文字列に正規表現を適用し、最初の一致を返すコードを使用しています。すべての一致を返すようにコードを変更するためのアクセス権がありません。また、代替コードを実装することもできません。
次のターゲット文字列の例があります。
usera、userb ,, userc ,, userd、usere、userf、
これは、複数のソースから結合されたコンマ区切りのユーザー名のリストです。一部は空白で、場所によっては2つのコンマが表示されます。特定の値を除いて、コンマで区切られたすべてのユーザー名を返す正規表現を作成しようとしています。
たとえば、次の式について考えてみます。
[^,]\w{1,},(?<!(userb|userc|userd),)
これにより、次の3つの一致が発生します。
ウセラ、
usere、
userf、
これらの結果を、一致コレクションではなく、単一の一致として取得する方法はありますか?たとえば、テキスト「usera、usere、userf」を持つ単一の一致はありますか?
任意の言語でコードを記述できれば、これは簡単ですが、入力はターゲット文字列とパターンのみに制限されており、省略しているものを除くすべての項目を含む単一の一致が必要です。これが可能かどうかはわかりませんが、正規表現でこれまでに行ったことはすべて、一致コレクション内の複数のアイテムを処理することです。
これがRegexCoachの例です。この画像は、必要な3つの一致があることを示していますが、私の要件は、3つの別々の一致ではなく、1つの一致にテキストを含めることです。
編集1: このチケットを明確にすることは、正規表現構文のみを使用してユースケースを解決することを特に目的としています。コードでこの問題を解決するのは簡単ですが、実行中のコードがリバースエンジニアリング、ラップ、または置換したくないサードパーティ製品の一部であるという事実を考えると、正規表現のみを使用して解決することが要件でした。