0

現在、これを行う2つの正規表現があります。

Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})"; 

2つの正規表現を1つにまとめて、最初に検索した正規表現が一致するようにしたいだけです。

概念的には正規表現を考えています-1|| 正規表現-2。それらを組み合わせることが可能ですか?

ありがとう。

4

1 に答える 1

1

こういう意味ですか?

Regex-1_2 = "(\\{(\\w+)\\})|(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";

編集:

だから、このようなもの?

{(((\w+)|({\w+}))\|?)*}

編集2:

あなたの最後のコメントは役に立ちます。ですから、最初から最後まで作業してください。開き中かっこを一致させたいので、その部分は簡単です。

{

さて、最初の中括弧の後に、2つのオプションがあります。1つ以上の英数字(またはアンダースコア)文字があるか、パイプで区切られた0個以上の文字の3つのグループがあります。最初の2つのグループは非パイプ文字である必要があり、最後のグループは非中括弧文字である必要があります(中括弧は式を閉じるため)。これは、交互構文を使用して表すことができます。

{(\w+|[^|]*\|[^|]*\|[^}]*)

最後に、式は中括弧で終わります。

{(\w+|[^|]*\|[^|]*\|[^}]*)}

これは、提供した例で機能します。ルールが異なるか、より具体的である場合は、そのように言う必要があります。

于 2012-07-04T01:34:09.107 に答える