要件に応じて、リストした 5 つの正確な文字列のいずれかに一致する正規表現を次に示します。これが意図したものでない場合は、明確にしてください。
Regex pattern = new Regex(@"(ads<r>_aimDate50ms\.Good)|(ads<t>Valid#)|(tactics_priorityT)|(tactics_SelectedADS#)|(ads3bValid#)");
編集
あなたの要件はまだ非常に複雑です。いくつかの特定のルールを定義してみましょう。多分私たちは欲しいと思います:
- 1 つ以上の文字、その後に続く
- 0 個以上の文字、数字、またはアンダースコアの後に続く
- 0 または 1
#
文字
- また -
- 1 つ以上の文字、その後に続く
- 0 個以上の文字、数字、またはアンダースコアの後に続く
- 正確に 1
<
文字、その後に
- 正確に 1 文字、その後に
- 正確に 1
>
文字、その後に
- 1 つ以上の文字、数字、アンダースコア、または
.
文字の後に続く
- 0 または 1
#
文字
ここは球場ですか?これらのルールはあなたの例と一致しますが、それでも「正しくない」場合があります。これは、具体的に説明する必要があると私が言っていることです。パターンが何であるかを明確に説明できる場合は、正規表現を記述できます。パターンを記述する一連のルールを識別できない場合は、それを正規表現に変換する方法がありません。
質問を更新して、パターンの特定のルールを一覧表示できますか? パターンのすべての部分について、どのような種類の文字が期待されているか、何文字が連続して表示されるかを知る必要があります。たとえば、0 個以上、1 個以上、ちょうど 1 個などです。
編集2
あなたの更新された質問に基づいて、私はショットを撮ることができると思います。「anyNoOfCharacters」と言うとき、あなたはどの種類の文字かを明確にしませんでした. しかし、スペース、句読点などを含む、文字通りあらゆる種類の文字を意味する場合、正規表現はほとんどすべてに一致するため、あまり役に立ちません。したがって、その場合は文字のみを意味していると想定します。
これがあなたのルールです(「anyNoOfCharacters」に関する私の仮定とともに)正規表現に翻訳されています:
[A-Za-z]*<.>[A-Za-z]*\.[A-Za-z]*
[A-Za-z]*<.>[A-Za-z]*#
[A-Za-z]*_[A-Za-z]*#
[A-Za-z0-9]*#
(
)
これを単一の正規表現にするには、各ルールを括弧で囲み、それらの間に a を追加することで、用語を組み合わせることができ|
ます。したがって、次のようになります。
Regex pattern = new Regex(@"([A-Za-z]*<.>[A-Za-z]*\.[A-Za-z]*)|([A-Za-z]*<.>[A-Za-z]*#)|([A-Za-z]*_[A-Za-z]*#)|([A-Za-z0-9]*#)");
これは近いと思いますが、まだそこまでではないかもしれません。これを利用して、ニーズに合わせて改良できる場所は十分にありますか? そうでない場合は、さらに明確にしてください。