現在、これを行う2つの正規表現があります。
Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";
2つの正規表現を1つにまとめて、最初に検索した正規表現が一致するようにしたいだけです。
概念的には正規表現を考えています-1|| 正規表現-2。それらを組み合わせることが可能ですか?
ありがとう。
現在、これを行う2つの正規表現があります。
Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";
2つの正規表現を1つにまとめて、最初に検索した正規表現が一致するようにしたいだけです。
概念的には正規表現を考えています-1|| 正規表現-2。それらを組み合わせることが可能ですか?
ありがとう。
こういう意味ですか?
Regex-1_2 = "(\\{(\\w+)\\})|(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";
編集:
だから、このようなもの?
{(((\w+)|({\w+}))\|?)*}
編集2:
あなたの最後のコメントは役に立ちます。ですから、最初から最後まで作業してください。開き中かっこを一致させたいので、その部分は簡単です。
{
さて、最初の中括弧の後に、2つのオプションがあります。1つ以上の英数字(またはアンダースコア)文字があるか、パイプで区切られた0個以上の文字の3つのグループがあります。最初の2つのグループは非パイプ文字である必要があり、最後のグループは非中括弧文字である必要があります(中括弧は式を閉じるため)。これは、交互構文を使用して表すことができます。
{(\w+|[^|]*\|[^|]*\|[^}]*)
最後に、式は中括弧で終わります。
{(\w+|[^|]*\|[^|]*\|[^}]*)}
これは、提供した例で機能します。ルールが異なるか、より具体的である場合は、そのように言う必要があります。