Next: , Previous: Regular Expressions, Up: Searching and Matching   [Contents][Index]


33.3 Àµµ¬É½¸½¤Îõº÷

GNU Emacs¤Ç¤Ï¡¢Àµµ¬É½¸½¤Ë°ìÃפ¹¤ë¤Ä¤®¤ÎÉôʬ¤ò ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¤Ë¤â¤½¤¦¤Ç¤Ê¤¯¤âõ¤»¤Þ¤¹¡£ ¥¤¥ó¥¯¥ê¥á¥ó¥¿¥ë¥µ¡¼¥Á¥³¥Þ¥ó¥É¤Ë¤Ä¤¤¤Æ¤Ï¡¢ Àµµ¬É½¸½Ãµº÷ in GNU Emacs ¥Þ¥Ë¥å¥¢¥ë¤ò »²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤³¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤ÇÍ­ÍѤÊõº÷´Ø¿ô¤Î¤ß¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£ ´ðËÜŪ¤Ê¤â¤Î¤Ïre-search-forward¤Ç¤¹¡£

¤³¤ì¤é¤Îõº÷´Ø¿ô¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤¬¥Þ¥ë¥Á¥Ð¥¤¥È¤Ç¤¢¤ì¤Ð Àµµ¬É½¸½¤ò¥Þ¥ë¥Á¥Ð¥¤¥È¤ËÊÑ´¹¤·¤Þ¤¹¡£ ¥Ð¥Ã¥Õ¥¡¤¬¥æ¥Ë¥Ð¥¤¥È¤Ç¤¢¤ì¤Ð¡¢Àµµ¬É½¸½¤ò¥æ¥Ë¥Ð¥¤¥È¤ËÊÑ´¹¤·¤Þ¤¹¡£ See Text Representations¡£

¥³¥Þ¥ó¥É: re-search-forward regexp &optional limit noerror repeat

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤ÆÁ°Êý¤Ø¸þ¤±¤Æ Àµµ¬É½¸½regexp¤Ë°ìÃפ¹¤ë¥Æ¥­¥¹¥È¤Îʸ»úÎó¤òõº÷¤¹¤ë¡£ ´Ø¿ô¤Ïregexp¤Ë°ìÃפ·¤Ê¤¤¥Æ¥­¥¹¥È¤Ï¤¹¤Ù¤ÆÈô¤Ó±Û¤¨¡¢ ¤ß¤Ä¤±¤¿°ìÃײսê¤ÎËöÈø¤Ø¥Ý¥¤¥ó¥È¤òÃÖ¤¯¡£ ¥Ý¥¤¥ó¥È¤Î¿·¤¿¤ÊÃͤòÊÖ¤¹¡£

limit¤¬nil°Ê³°¡Ê¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡Æâ¤Î°ÌÃ֤Ǥ¢¤ë¤³¤È¡Ë¤Ç¤¢¤ë¤È¡¢ õº÷¤Î¾å¸Â¤òɽ¤¹¡£ ¤½¤Î°ÌÃÖ¤ò±Û¤¨¤ë²Õ½ê¤Ç¤Î°ìÃפϼõ¤±Æþ¤ì¤Ê¤¤¡£

repeat¤ò»ØÄꤷ¤Æ¤¢¤ë¤È¡ÊÀµ¤Î¿ô¤Ç¤¢¤ë¤³¤È¡Ë¡¢ ¤½¤Î²ó¿ô¤À¤±Ãµº÷¤ò·«¤êÊÖ¤¹¡Ê°ìÃײսê¤ÎËöÈø¤ò¿·¤¿¤Êõº÷¤Î³«»Ï°ÌÃ֤Ȥ¹¤ë¡Ë¡£ Ϣ³¤·¤Æ¤³¤ì¤é¤Îõº÷¤ËÀ®¸ù¤¹¤ë¤È´Ø¿ô¤ÏÀ®¸ù¤·¡¢ ¥Ý¥¤¥ó¥È¤ò°Üư¤·¤Æ¤½¤Î¿·¤¿¤ÊÃͤòÊÖ¤¹¡£ ¤µ¤â¤Ê¤±¤ì¤Ðõº÷¤Ï¼ºÇԤǤ¢¤ë¡£

´Ø¿ô¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Îưºî¤Ï¡¢noerror¤ÎÃͤ˰͸¤¹¤ë¡£ noerror¤¬nil¤Ç¤¢¤ë¤È¡¢ ¥¨¥é¡¼search-failed¤òÄÌÃΤ¹¤ë¡£ noerror¤¬t¤Ç¤¢¤ë¤È¡¢ re-search-forward¤Ï¤Ê¤Ë¤â¤»¤º¤Ënil¤òÊÖ¤¹¡£ noerror¤¬nil¤Ç¤ât¤Ç¤â¤Ê¤¤¤È¡¢ re-search-forward¤Ï¥Ý¥¤¥ó¥È¤òlimit¡Ê¤¢¤ë¤¤¤Ï¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¡Ë¤Ø °Üư¤·¤Ænil¤òÊÖ¤¹¡£

¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢¥Ý¥¤¥ó¥È¤Ï»Ï¤á¤Ï‘T’¤Î¤Þ¤¨¤Ë¤¢¤ë¡£ õº÷¤ò¸Æ¤Ó½Ð¤¹¤È¡¢¥Ý¥¤¥ó¥È¤ÏÅö³º¹Ô¤ÎËöÈø ¡Ê‘hat’¤Î‘t’¤È²þ¹Ô¤Î¤¢¤¤¤À¡Ë¤Ø°Üư¤¹¤ë¡£

---------- Buffer: foo ----------
I read "∗The cat in the hat
comes back" twice.
---------- Buffer: foo ----------
(re-search-forward "[a-z]+" nil t 5)
     ⇒ 27

---------- Buffer: foo ----------
I read "The cat in the hat∗
comes back" twice.
---------- Buffer: foo ----------
¥³¥Þ¥ó¥É: re-search-backward regexp &optional limit noerror repeat

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤Æ¸åÊý¤Ø¸þ¤±¤Æ Àµµ¬É½¸½regexp¤Ë°ìÃפ¹¤ë¥Æ¥­¥¹¥È¤Îʸ»úÎó¤òõº÷¤·¡¢ ¤ß¤Ä¤±¤¿°ìÃײսê¤ÎÀèÆ¬¤Ø¥Ý¥¤¥ó¥È¤òÃÖ¤¯¡£

¤³¤Î´Ø¿ô¤Ïre-search-forward¤ËÎà»÷¤·¤¿¤â¤Î¤Ç¤¢¤ë¤¬¡¢ ñ½ã¤Ê¶ÀÁü¤Ç¤Ï¤Ê¤¤¡£ re-search-forward¤Ï¡¢°ìÃײսê¤ÎÀèÆ¬¤¬ ³«»Ï°ÌÃ֤˲Äǽ¤Ê¸Â¤ê¶á¤¤°ìÃײսê¤òõ¤¹¡£ re-search-backward¤¬´°Á´¤Ê¶ÀÁü¤Ç¤¢¤ì¤Ð¡¢ °ìÃײսê¤ÎËöÈø¤¬²Äǽ¤Ê¸Â¤ê¶á¤¤°ìÃײսê¤òõ¤¹¡£ ¤·¤«¤·¡¢¼ÂºÝ¤Ë¤Ï¡¢°ìÃײսê¤ÎÀèÆ¬¤¬²Äǽ¤Ê¸Â¤ê¶á¤¤°ìÃײսê¤òõ¤¹¡£ ¤³¤ì¤Ï¡¢Àµµ¬É½¸½¤È¤Î°ìÃפò¤È¤ë½èÍý¤Ï¡¢ »ØÄ곫»Ï°ÌÃ֤ˤª¤¤¤ÆÀèÆ¬¤«¤éËöÈø¤Ø¸þ¤±¤Æ¤Ä¤Í¤Ë¹Ô¤ï¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£

re-search-forward¤Î´°Á´¤Ê¶ÀÁü¤Ë¤Ï¡¢ Àµµ¬É½¸½¤Î°ìÃפòËöÈø¤«¤éÀèÆ¬¤Ø¸þ¤±¤Æ¹Ô¤¦ÆÃÊ̤ʵ¡Ç½¤¬É¬ÍפǤ¢¤ë¡£ ¤½¤ì¤ò¼ÂÁõ¤¹¤ë¼ê´Ö¤ò¤«¤±¤ë¤Û¤É¤Î²ÁÃͤϤʤ¤¡£

Function: string-match regexp string &optional start

¤³¤Î´Ø¿ô¤Ï¡¢Ê¸»úÎóstring¤Ë¤ª¤¤¤ÆÀµµ¬É½¸½regexp¤Ë°ìÃפ·¤¿ ºÇ½é¤Î²Õ½ê¤Îź»ú¤òÊÖ¤¹¡£ ¤¢¤ë¤¤¤Ï¡¢°ìÃפ¬¤Ê¤±¤ì¤Ðnil¤òÊÖ¤¹¡£ start¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ string¤Î»ØÄꤷ¤¿Åº»ú¤«¤éõº÷¤ò»Ï¤á¤ë¡£

¤¿¤È¤¨¤Ð¤Ä¤®¤Î¤È¤ª¤ê¤Ç¤¢¤ë¡£

(string-match
 "quick" "The quick brown fox jumped quickly.")
     ⇒ 4
(string-match
 "quick" "The quick brown fox jumped quickly." 8)
     ⇒ 27

ʸ»úÎó¤ÎºÇ½é¤Îʸ»ú¤Îź»ú¤Ï0¤Ç¤¢¤ê¡¢ 2ÈÖÌܤÎʸ»ú¤Îź»ú¤Ï1¤Ç¤¢¤ë¤È¤¤¤Ã¤¿¶ñ¹ç¤Ë¤Ê¤ë¡£

¤³¤Î´Ø¿ô¤«¤éÌá¤Ã¤¿¤¢¤È¤Ç¤Ï¡¢ °ìÃײսê¤ò±Û¤¨¤¿ºÇ½é¤Îʸ»ú¤Îź»ú¤Ï(match-end 0)¤ÇÆÀ¤é¤ì¤ë¡£ see Match Data¡£

(string-match
 "quick" "The quick brown fox jumped quickly." 8)
     ⇒ 27
(match-end 0)
     ⇒ 32
Function: looking-at regexp

¤³¤Î´Ø¿ô¤Ï¡¢¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡Æâ¤Î¥Ý¥¤¥ó¥È¤Îľ¸å¤Î¥Æ¥­¥¹¥È¤¬ Àµµ¬É½¸½regexp¤Ë°ìÃפ¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£ ¤³¤³¤Ç¡ØÄ¾¸å¡Ù¤È¤Ï¡¢³«»Ï°ÌÃ֤ϸÇÄꤵ¤ì¤Æ¤¤¤Æ¡¢ ¥Ý¥¤¥ó¥È¤Î¤¦¤·¤í¤ÎºÇ½é¤Îʸ»ú¤Ç»Ï¤Þ¤ë¾ì¹ç¤Ë¤Î¤ßõº÷¤ÏÀ®¸ù¤¹¤ë¡£ ·ë²Ì¤Ï¡¢°ìÃפ¹¤ì¤Ðt¤Ç¤¢¤ê¡¢¤µ¤â¤Ê¤±¤ì¤Ðnil¤Ç¤¢¤ë¡£

¤³¤Î´Ø¿ô¤Ï¥Ý¥¤¥ó¥È¤ò°Üư¤·¤Ê¤¤¤¬¡¢¥Þ¥Ã¥Á¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë¡£ match-beginning¤ämatch-end¤ò»È¤Ã¤Æ¥Þ¥Ã¥Á¥Ç¡¼¥¿¤ò»²¾È¤Ç¤­¤ë¡£

¤Ä¤®¤ÎÎã¤Ç¤Ï¡¢¥Ý¥¤¥ó¥È¤Ï‘T’¤ÎľÁ°¤Ë¤¢¤ë¡£ ¥Ý¥¤¥ó¥È¤¬¤³¤ì°Ê³°¤Î¾ì½ê¤Ë¤¢¤ë¤È·ë²Ì¤Ïnil¤Ë¤Ê¤ë¡£

---------- Buffer: foo ----------
I read "∗The cat in the hat
comes back" twice.
---------- Buffer: foo ----------

(looking-at "The cat in the hat$")
     ⇒ t