正規表現を使用すると、次のような\*\*([^\*]*)\*\*
内の複数のテキスト グループに一致させることができます。**
this **is** a **test**
is
&を返しtest
ます。
文字列が与えられた場合that's **right * a test**
、式を調整して返すにはどうすればよいright * a test
ですか? *
1 つではなく2 つの を除外する式を取得するにはどうすればよいですか?
正規表現を使用すると、次のような\*\*([^\*]*)\*\*
内の複数のテキスト グループに一致させることができます。**
this **is** a **test**
is
&を返しtest
ます。
文字列が与えられた場合that's **right * a test**
、式を調整して返すにはどうすればよいright * a test
ですか? *
1 つではなく2 つの を除外する式を取得するにはどうすればよいですか?
消極的な量指定子を使用できます.*?
。
\*\*.*?\*\*
正規表現エンジンでサポートされていると仮定します。
次を使用しor
ます。
\*\*((?:[^*]|\*[^*])*)\*\*
一致するグループ内では、これは星ではない文字、または星の後に星以外が続く文字と一致します。二重星 ( )の最初の**
出現は、文字列リテラルの終わりを示すと見なされます。文字列の内容が ( のように**my string ends with a star***
) アスタリスクで終わることを意図している場合、私の正規表現は一致に最後のアスタリスクを含めません (そのため、文字列の内容は単に " my string ends with a star
" になります)。しかし、私はそれが今説明したように有効だと思います。
ただし、文字列リテラルが のようなスターで始まる場合、文字列コンテンツにスターが含まれます。これは、 の最初の出現が文字列リテラルの開始をマークし、次のシングルがコンテンツの一部である***Star Power!**
ため、これも有効だと思います.**
*
また、(ほとんどの実装では) 文字クラス内で星をエスケープする必要がないことに注意してください。
消極的な量指定子を使用したくない場合は、これを使用できます。
\*\*((?:[^*]|[*](?=[^*]))+)\*\*
説明: これは、'**' のペアの間に '*' が続かない、'*' または '*' 以外の任意の文字に一致します。
次のパターンを使用できます。
\*\*((?:[^*]|[^*]\*[^*])*)\*\*
これは、任意の文字のペアに一致し、その後に 以外の文字または以外の文字で囲まれ*
た 0 個以上の任意の文字が続き、その後に別の文字のペアが続きます。*
*
*
*