今日smartyのソースコードを見ていたら、理解できない正規表現を見つけました
(?>[^"'=s]+)
ディスカッションに返信 (解決策)
?> 指定した文字からマッチングを開始します
どこで見たのですか?> で始まる場合は、疑問符を追加してください
私は英語を学んだことがありません、推測します
ああ、?> 以降の文字から始まる関連記事は見つかりません。
(?>[^"'=s]+ の違い) )と([^"'=s]+)はもう何も分かりません
どこで見た、見たいです
それなら?>最初に質問すればいいんじゃないでしょうかマークを追加します
その疑問符と大なり記号は正規表現の一部ではなく、Windows システムのコマンド ラインの行形式では、実行されるのは大なり記号の後にあります
例:
C:> dir
its ? は C:
> と同等です
its [^"' =s]+ は dir
と同等です
どこで見ましたか, 見たいです?>の場合は先頭に疑問符を付けるべきではないでしょうか
Smarty_Compiler.class このファイルにはそのような使い方がたくさんあります
どこで見れますか?見てみたいです
先頭に ?> がある場合、疑問符を追加する必要はありませんか?
その疑問符と大なり記号は正規表現の一部ではありません。 Windows システム、大なり記号の後に実行されるもの
例:
C:> dir
its ? は C: と同等です
> は区切り文字識別子です
[^" '=s]+ はdir と同等です
上記は私の理解です
ソースコードで学んだことによると、これはこの意味ではないはずです
この問題は解決しました、(?>パターン この式はSolidified groupingと呼ばれ、主に正規表現の効率を向上させ、正規表現を最適化します。通常の正規表現とは少し異なります。詳しく知りたい場合は、Baidu で正規表現のグループ化を検索してください。