Previous: Entire Match Data, Up: Match Data   [Contents][Index]


33.6.4 ¥Þ¥Ã¥Á¥Ç¡¼¥¿¤ÎÊݸ¤ÈÉü¸µ

õº÷¤ò¹Ô¤¦²ÄǽÀ­¤¬¤¢¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¡¢ ¤¢¤È¤Ç»È¤¦¤¿¤á¤Ë¤½¤ì°ÊÁ°¤Îõº÷¤Ë¤è¤ë¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·¤¿¤¤¤È¤­¤Ë¤Ï¡¢ Åö³º´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Î¼þ¤ê¤Ç¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·Éü¸µ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤Ä¤®¤ÎÎã¤Ï¡¢¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·Â»¤Ê¤Ã¤¿¾ì¹ç¤ËÀ¸¤¸¤ëÌäÂêÅÀ¤ò ¼¨¤·¤Æ¤¤¤Þ¤¹¡£

(re-search-forward "The \\(cat \\)")
     ⇒ 48
(foo)                   ; foo¤Ï¤µ¤é¤Ë
                        ;   õº÷¤¹¤ë
(match-end 0)
     ⇒ 61              ; ͽ´ü¤·¤Ê¤¤·ë²Ì¡£48¤Ç¤Ê¤¤¡ª

¥Þ¥Ã¥Á¥Ç¡¼¥¿¤ÎÊݸ¤ÈÉü¸µ¤Ïsave-match-data¤Ç¹Ô¤¨¤Þ¤¹¡£

Macro: save-match-data body…

¤³¤Î¥Þ¥¯¥í¤Ï¡¢¼þ¤ê¤Î¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·Éü¸µ¤·¤Æ¡¢ body¤ò¼Â¹Ô¤¹¤ë¡£

¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àsave-match-data¤Î¸ú²Ì¤ò¤Þ¤Í¤ë¤¿¤á¤Ë match-data¤È¤È¤â¤Ëset-match-data¤ò»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¤Ä¤®¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

(let ((data (match-data)))
  (unwind-protect
      …   ; ¤â¤È¤Î¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊѹ¹¤·¤Æ¤âÂç¾æÉ×
    (set-match-data data)))

¥×¥í¥»¥¹¥Õ¥£¥ë¥¿´Ø¿ô¡Êsee Filter Functions¡Ë¤ä ¥×¥í¥»¥¹¤ÎÈÖʼ¡Êsee Sentinels¡Ë¤ò¼Â¹Ô¤¹¤ë¤È¤­¤Ë¤Ï¡¢ Emacs¤Ï¼«Æ°Åª¤Ë¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÊݸ¤·Éü¸µ¤·¤Þ¤¹¡£