■■■■Proxomitron入門スレッド■■■■5at PCQA
■■■■Proxomitron入門スレッド■■■■5 - 暇つぶし2ch578:ひよこ名無しさん
06/05/17 15:02:06
$NEST(start_match,end_match)

{start_match(●|(^start_match|end_match)?)+end_match}
という形式に一般化できるんじゃないかな。

●は {} の中のパターン自身を展開する(再帰呼び出し)

(^start_match|end_match)?の部分は実際には
1.今見ているところがstart_matchにマッチしたら再帰呼び出し
2.今見ているところがend_matchにマッチしたらリターン(ネスト成功)
3.どっちでもなければバッファ上の参照位置を1バイト進める
4.バッファ末尾に達したらリターン(ネスト失敗)
5.1に戻る
という動作でしょう。

こういう内部動作であれば、<a\s*> がオーバーランする挙動も
「<a\s*> が特別扱いされていないから」ということで自然に説明できます。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch