2017-07-15 5 views
0

、私の正規表現:すべての目的BBコードの正規表現だから、現在

\*\*(.+?)\*\*

私は追加はそれがで省略されている*があること [size=16]***400 FAVES! Thank you so much for your love and support!***[/size]

に注意を入れて返し ***400 FAVES! Thank you so much for your love and support!**

終わり。

誰かが、なぜそれが起こっているのか、最良の解決策が何であるか教えてください。

答えて

1

これは非貪欲な量指定子(可能な限り少ない)の通常の動作です。

\*\*(.+?\**)\*\* 

demo

あなたは貪欲な数量詞を使用してキャプチャグループにオプションのアスタリスクを含む問題を解決することができますが、今回

2

キャプチャ文字列に最初と最後に3つの星が含まれていることが確かな場合は、その場合は\*{3}(.+?)\*{3}を使用できます。さもなければ、\*(.+)\*のような貪欲な表現は、最後と始まりに星がある限り長く働くはずです。

出力:***400 FAVES! Thank you so much for your love and support!***

それはあなたのケースで終わりで2つ星を返された理由は、可能な限り数回にマッチする正規表現の非欲張り(.+?)一部です。