Next: , Previous: Regular Expressions, Up: Regular Expressions   [Contents][Index]


33.2.1 Àµµ¬É½¸½¤Î¹½Ê¸

Àµµ¬É½¸½¤Ç¤Ï¡¢¿ô¸Ä¤Îʸ»ú¤¬ÆÃÊ̤ʹ½À®¤Ç¤¢¤ê¡¢»Ä¤ê¤ÏÉáÄ̤Ǥ¹¡£ ÉáÄ̤Îʸ»ú¤Ï¡¢¤½¤Îʸ»ú¤À¤±¤Ë°ìÃפ¹¤ëñ½ã¤ÊÀµµ¬É½¸½¤Ç¤¹¡£ ÆÃÊ̤Êʸ»ú¤Ï¡¢‘.’¡¢‘*’¡¢‘+’¡¢ ‘?’¡¢‘[’¡¢‘]’¡¢‘^’¡¢‘$’¡¢‘\’¤Ç¤¢¤ê¡¢ ¾­Íè¿·¤¿¤Êʸ»ú¤¬ÄêµÁ¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ Àµµ¬É½¸½¤Ë¸½¤ì¤ë¤³¤ì¤é°Ê³°¤Îʸ»ú¤Ï¡¢ ¤Þ¤¨¤Ë‘\’¤¬¤Ê¤¤¸Â¤êÉáÄ̤Îʸ»ú¤Ç¤¹¡£

¤¿¤È¤¨¤Ð¡¢‘f’¤ÏÆÃÊ̤Êʸ»ú¤Ç¤Ï¤Ê¤¤¤Î¤ÇÉáÄ̤Îʸ»ú¤Ç¤¹¡£ ¤Ç¤¹¤«¤é¡¢‘f’¤Ïʸ»úÎó‘f’¤À¤±¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤Ç¤¹¡£ ¡Ê¤³¤ì¤Ïʸ»úÎó‘ff’¤Ë¤Ï°ìÃפ·¤Ê¤¤¡£¡Ë ƱÍͤˡ¢‘o’¤Ï‘o’¤À¤±¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤Ç¤¹¡£

Ǥ°Õ¤Î2¤Ä¤ÎÀµµ¬É½¸½a¤Èb¤òÏ¢·ë¤Ç¤­¤Þ¤¹¡£ ¤½¤Î·ë²Ì¤Ï¡¢a¤¬Ê¸»úÎó¤Î»Ï¤á¤ÎÉôʬ¤Ë°ìÃפ·¡¢¤«¤Ä¡¢ b¤¬¤½¤Îʸ»úÎó¤Î»Ä¤ê¤Ë°ìÃפ¹¤ë¤È¤­¤Ë¤½¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë Àµµ¬É½¸½¤Ë¤Ê¤ê¤Þ¤¹¡£

´Êñ¤ÊÎã¤È¤·¤Æ¡¢Àµµ¬É½¸½ ‘f’¤È‘o’¤òÏ¢·ë¤·¤Æ Àµµ¬É½¸½‘fo’¤òÆÀ¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤Ïʸ»úÎó‘fo’¤À¤±¤Ë°ìÃפ·¤Þ¤¹¡£ ¤³¤ì¤ÏÌÀ¤é¤«¤Ç¤¹¤Í¡£ ¤è¤ê¶¯ÎϤʤ³¤È¤ò¤¹¤ë¤Ë¤Ï¡¢ÆÃÊ̤Êʸ»ú¤Î1¤Ä¤ò»È¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤ì¤é¤Î°ìÍ÷¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£

.¡Ê¥Ô¥ê¥ª¥É¡Ë

ÆÃÊ̤Êʸ»ú¤Ç¤¢¤ê¡¢²þ¹Ô°Ê³°¤ÎǤ°Õ¤Î1ʸ»ú¤Ë°ìÃפ¹¤ë¡£ Ï¢·ë¤ò»È¤Ã¤Æ‘a.b’¤Î¤è¤¦¤ÊÀµµ¬É½¸½¤òºî¤ì¤ë¡£ ¤³¤ì¤Ï¡¢‘a’¤Ç»Ï¤Þ¤ê‘b’¤Ç½ª¤ëǤ°Õ¤Î3ʸ»ú¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¡£

*

ñÆÈ¤Ç¤Ï¹½À®Í×ÁǤǤϤʤ¤¡£ ľÁ°¤ÎÀµµ¬É½¸½¤ò²Äǽ¤Ê¸Â¤êÈ¿Éü¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¸åÃֱ黻»Ò¤Ç¤¢¤ë¡£ ¤¹¤Ê¤ï¤Á¡¢‘o*’¤Ï¡Ê‘o’¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤â´Þ¤á¤Æ¡Ë Ǥ°Õ¸Ä¤Î‘o’¤Ë°ìÃפ¹¤ë¡£

*’¤Ï¤Ä¤Í¤ËÀè¹Ô¤¹¤ëºÇ¾®¤ÎÀµµ¬É½¸½¤ËŬÍѤµ¤ì¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘fo*’¤Ï‘fo’¤ò·«¤êÊÖ¤¹¤Î¤Ç¤Ï¤Ê¤¯¡¢ ‘o’¤ò·«¤êÊÖ¤¹¡£ ¤³¤ÎÀµµ¬É½¸½¤Ï‘f’¡¢‘fo’¡¢‘foo’¤Ê¤É¤Ë°ìÃפ¹¤ë¡£

*’¤òÍѤ¤¤¿¹½À®¤Î°ìÃפò½èÍý¤¹¤ë¤È¤­¤Ë¤Ï¡¢ ¤¿¤À¤Á¤ËÆÀ¤é¤ì¤ë¸Â¤ê¤ÎÈ¿Éü²ó¿ô¤ËŸ³«¤µ¤ì¤ë¡£ ¤½¤¦¤·¤Æ¤«¤é¡¢»Ä¤ê¤Î¥Ñ¥¿¡¼¥ó¤ò½èÍý¤¹¤ë¡£ °ìÃפ˼ºÇÔ¤¹¤ë¤È¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¡Ê¸åÌá¤ê¡Ë¤¬È¯À¸¤·¤Æ¡¢ ‘*’¤òÍѤ¤¤¿¹½À®¤ÎÈ¿Éü²ó¿ô¤ò¸º¤é¤·¤Æ ¥Ñ¥¿¡¼¥ó¤Î»Ä¤ê¤ÎÉôʬ¤¬°ìÃפǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£ ¤¿¤È¤¨¤Ð¡¢Ê¸»úÎó‘caaar’¤ËÂФ·¤Æ ‘ca*ar’¤ò°ìÃפµ¤»¤ë¤³¤È¤ò¹Í¤¨¤Æ¤ß¤ë¡£ »Ï¤á¤Ë¡¢‘a*’¤ò3¤Ä¤Î‘a’¤¹¤Ù¤Æ¤Ë°ìÃפµ¤»¤è¤¦¤È¤¹¤ë¡£ ¤·¤«¤·¡¢»Ä¤ê¤Î¥Ñ¥¿¡¼¥ó¤¬‘ar’¤Ê¤Î¤Ë‘r’¤·¤«»Ä¤Ã¤Æ¤¤¤Ê¤¤¤¿¤á¡¢ ¤³¤Î»î¤ß¤Ï¼ºÇÔ¤¹¤ë¡£ ¤½¤³¤Ç¡¢¤Ä¤®¤Ï‘a*’¤ò‘a’2¤Ä¤À¤±¤Ë°ìÃפµ¤»¤ë¡£ ¤³¤¦¤¹¤ë¤È¡¢»Ä¤ê¤ÎÀµµ¬É½¸½¤âÀµ¤·¤¯°ìÃפ¹¤ë¡£

Æþ¤ì»Ò¤Ë¤·¤¿È¿Éü±é»»»Ò¤¬¥Ð¥Ã¥¯¥È¥é¥Ã¥¯¤Î¥ë¡¼¥×¤ò»ØÄꤹ¤ë¾ì¹ç¡¢ ¤½¤ì¤Ï¤È¤Æ¤âÃÙ¤¯¤Ê¤ë¡£ ¤¿¤È¤¨¤Ð¡¢Àµµ¬É½¸½‘\(x+y*\)*a’¤ò ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz’¤ÎÎó¤Ë°ìÃפµ¤»¤ë¤È ºÇ½ªÅª¤Ë¼ºÇÔ¤¹¤ë¤Þ¤Ç²¿»þ´Ö¤âÈñ¤·¤Æ¤·¤Þ¤¦¡£ ÃÙ¤µ¤Î¸¶°ø¤Ï¡¢Emacs¤Ï35¸Ä¤Î‘x’¤ò¥°¥ë¡¼¥×¤Ëʬ¤±¤ë³ÆÊýË¡¤ò ¤¹¤Ù¤Æ»î¤·¤Æ¤«¤é¤Ç¤Ê¤¤¤È¤½¤ì¤é¤¬°ìÃפ·¤Ê¤¤¤³¤È¤ò·ëÏÀ¤Ç¤­¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ ÆÉ¼Ô¤ÎÀµµ¬É½¸½¤¬ÁÇÁ᤯ưºî¤¹¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢ Æþ¤ì»Ò¤Ë¤Ê¤Ã¤¿·«¤êÊÖ¤·¤òÃí°Õ¿¼¤¯Ä´¤Ù¤ë¤³¤È¡£

+

*’¤Ë»÷¤¿¸åÃֱ黻»Ò¤À¤¬¡¢ ľÁ°¤ÎÀµµ¬É½¸½¤Ë1²ó°Ê¾å°ìÃפ¹¤ëɬÍפ¬¤¢¤ë¡£ ¤¿¤È¤¨¤Ð¡¢‘ca+r’¤Ï¡¢Ê¸»úÎó‘car’¤ä‘caaaar’¤Ë¤Ï°ìÃפ¹¤ë¤¬¡¢ ʸ»úÎó‘cr’¤Ë¤Ï°ìÃפʤ¤¡£ °ìÊý¡¢‘ca*r’¤Î¾ì¹ç¤Ï¡¢¾åµ­¤Î3¤Ä¤¹¤Ù¤Æ¤Ë°ìÃפ¹¤ë¡£

?

*’¤Ë»÷¤¿¸åÃֱ黻»Ò¤À¤¬¡¢ ľÁ°¤ÎÀµµ¬É½¸½¤Ë1²ó¤À¤±°ìÃפ¹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢1²ó¤â°ìÃפ·¤Ê¤¤¡£ ¤¿¤È¤¨¤Ð¡¢‘ca?r’¤Ï¡¢‘car’¤ä‘cr’¤Ë°ìÃפ¹¤ë¤¬¡¢ ¾¤Î¤â¤Î¤Ë¤Ï°ìÃפ·¤Ê¤¤¡£

[ … ]

[’¤Ç»Ï¤Þ¤ê‘]’¤Ç½ª¤ëʸ»úÁªÂò¤òɽ¤¹¡£ ¤â¤Ã¤È¤âñ½ã¤Ê¾ì¹ç¤Ï¡¢ ¤³¤Î2¤Ä¤ÎÃæ³ç¸Ì¤Î¤¢¤¤¤À¤Ë¤¢¤ëʸ»ú¤Î1¤Ä1¤Ä¤¬¤³¤Îʸ»úÁªÂò¤Ë°ìÃפ¹¤ë¡£

¤·¤¿¤¬¤Ã¤Æ¡¢‘[ad]’¤Ï¡¢‘a’1ʸ»ú¤«‘d’1ʸ»ú¤Î¤É¤Á¤é¤Ë¤â°ìÃפ¹¤ë¡£ ‘[ad]*’¤Ï¡¢‘a’¤È‘d’¤À¤±¤«¤éÀ®¤ë ¡Ê¶õ¤Îʸ»úÎó¤ò´Þ¤à¡ËǤ°Õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¡£ ¤³¤Î¤³¤È¤«¤é¡¢‘c[ad]*r’¤Ï¡¢ ‘cr’¡¢‘car’¡¢‘cdr’¡¢‘caddaar’¤Ê¤É¤Ë°ìÃפ¹¤ë¤³¤È¤¬¤ï¤«¤ë¡£

ʸ»úÁªÂò¤Ë¤Ï¡¢Ê¸»úÈϰϤλØÄê¤ò´Þ¤á¤ë¤³¤È¤â¤Ç¤­¡¢ »Ï¤á¤Îʸ»ú¤È½ª¤ê¤Îʸ»ú¤Î¤¢¤¤¤À¤Ë‘-’¤ò½ñ¤¯¡£ ¤Ä¤Þ¤ê¡¢‘[a-z]’¤Ï¤¹¤Ù¤Æ¤ÎASCII¾®±Ñʸ»ú¤Ë°ìÃפ¹¤ë¡£ ÈϰϻØÄê¤È¸Ä¡¹¤Îʸ»ú¤ò¼«Í³¤Ë¿¥¤êº®¤¼¤Æ¤è¤¯¡¢ ‘[a-z$%.]’¤Î¤è¤¦¤Ë½ñ¤±¤ë¡£ ¤³¤ì¤Ï¡¢Ç¤°Õ¤ÎASCII¾®±Ñʸ»ú¡¢‘$’¡¢‘%’¡¢¥Ô¥ê¥ª¥É¤Ë°ìÃפ¹¤ë¡£

Àµµ¬É½¸½‘[\200-\377]’¤Ç ¤¹¤Ù¤Æ¤ÎÈóASCIIʸ»ú¤Ë¤Ä¤Í¤Ë°ìÃפ¹¤ë¤È¤Ï¸Â¤é¤Ê¤¤¡£ ¥æ¥Ë¥Ð¥¤¥È¡Êsee Text Representations¡Ë¤Î¥Ð¥Ã¥Õ¥¡¤äʸ»úÎó¤ò õº÷¤¹¤ë¤È¤­¤Ë¤Ï¤¦¤Þ¤¯Æ¯¤¯¤¬¡¢¥Þ¥ë¥Á¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤äʸ»úÎó¤Ç¤Ï ¿¤¯¤ÎÈóASCIIʸ»ú¤Î¥³¡¼¥É¤Ï8¿Ê¿ô0377¤è¤êÂ礭¤¤¤¿¤á¤ËƯ¤«¤Ê¤¤¡£ ¤·¤«¤·¡¢Àµµ¬É½¸½‘[^\000-\177]’¤Ï¡¢ ASCIIʸ»ú¤Î¤ß¤ò½ü³°¤·¤Æ¤¤¤ë¤¿¤á¡¢ ¥Þ¥ë¥Á¥Ð¥¤¥Èɽ¸½¤Ç¤â¥æ¥Ë¥Ð¥¤¥Èɽ¸½¤Ç¤â¤¹¤Ù¤Æ¤ÎÈóASCIIʸ»ú¤Ë°ìÃפ¹¤ë¡£

ÈϰϻØÄê¤Î»Ï¤á¤È½ª¤ê¤ÏƱ¤¸Ê¸»ú½¸¹ç¡Êsee Character Sets¡Ë¤Ë °¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘[a-\x8e0]’¤ÏÀµ¤·¤¯¤Ê¤¤¡£ ‘a’¤ÏASCIIʸ»ú½¸¹ç¤Ë°¤·¡¢ ʸ»ú0x8e0¡Ê¥°¥ì¡¼¥Ö¥¢¥¯¥»¥ó¥ÈÉÕ¤­‘a’¡Ë¤Ï Emacs¤ÎLatin-1¤Îʸ»ú½¸¹ç¤Ë°¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¢¤ë¡£

Àµµ¬É½¸½¤ÎÉáÄÌ¤ÎÆÃÊ̤Êʸ»ú¤Ï¡¢Ê¸»úÁªÂò¤ÎÆâ¦¤Ç¤ÏÆÃÊ̤ǤϤʤ¤¤³¤È¤ËÃí°Õ¡£ ʸ»úÁªÂò¤ÎÆâ¦¤Ç¤Ï¡¢¤Þ¤Ã¤¿¤¯Ê̤Îʸ»ú¤Î½¸¤Þ¤ê¡¢ ‘]’¡¢‘-’¡¢‘^’¤¬ÆÃÊ̤Ǥ¢¤ë¡£

ʸ»úÁªÂò¤Ë‘]’¤ò´Þ¤á¤ë¤Ë¤Ï¡¢ ‘]’¤òºÇ½é¤Îʸ»ú¤È¤·¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ë¡£ ¤¿¤È¤¨¤Ð¡¢‘[]a]’¤Ï¡¢‘]’¤ä‘a’¤Ë°ìÃפ¹¤ë¡£ ‘-’¤ò´Þ¤á¤ë¤Ë¤Ï¡¢‘-’¤òʸ»úÁªÂò¤ÎºÇ½é¤Îʸ»ú¤« ºÇ¸å¤Îʸ»ú¤È¤·¤Æ½ñ¤¯¤«¡¢ÈϰϻØÄê¤Î¤¢¤È¤ËÃÖ¤¯¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘[]-]’¤Ï¡¢‘]’¤È‘-’¤ÎξÊý¤Ë°ìÃפ¹¤ë¡£

ʸ»úÁªÂò¤Ë‘^’¤ò´Þ¤á¤ë¤Ë¤Ï¡¢‘^’¤òʸ»úÁªÂò¤Î2ÈÖÌܰʹߤËÃÖ¤¯¡£

[^ … ]

[^’¤Ïʸ»úÁªÂò¤ÎÊ佸¹ç¤Î»Ï¤Þ¤ê¤ò°ÕÌ£¤·¡¢ »ØÄꤷ¤¿Ê¸»ú¤ò½ü¤¯Ç¤°Õ¤Îʸ»ú¤Ë°ìÃפ¹¤ë¡£ ¤¹¤Ê¤ï¤Á¡¢‘[^a-z0-9A-Z]’¤Ï¡¢ ±Ñʸ»ú¤È¿ô»úʸ»ú¤ò½ü¤¯¤¹¤Ù¤Æ¤Îʸ»ú¤Ë°ìÃפ¹¤ë¡£

^’¤Ïʸ»úÁªÂò¤ÎÀèÆ¬¤Ë¤Ê¤±¤ì¤Ðʸ»úÁªÂò¤Ç¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤¿¤Ê¤¤¡£ ‘^’¤Ë³¤¯Ê¸»ú¤ÏÀèÆ¬¤Ë¤¢¤ë¤â¤Î¤È¤·¤Æ°·¤ï¤ì¤ë ¡Ê¤¤¤¤¤«¤¨¤ì¤Ð¡¢¤³¤³¤Ç¤Ï‘-’¤ä‘]’¤ÏÆÃÊ̤ʰÕÌ£¤ò»ý¤¿¤Ê¤¤¡Ë¡£

ʸ»úÁªÂò¤ÎÊ佸¹ç¤Ï¡¢°ìÃפ·¤Ê¤¤Ê¸»ú¤È¤·¤Æ²þ¹Ô¤ò»ØÄꤷ¤Ê¤¤¸Â¤ê¡¢ ²þ¹Ô¤Ë¤â°ìÃפ¹¤ë¡£ ¤³¤ÎÅÀ¤Ï¡¢grep¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç¤ÎÀµµ¬É½¸½¤Î°·¤¤Êý¤ÈÂоÈŪ¤Ç¤¢¤ë¡£

^

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ëÆÃÊ̤Êʸ»ú¤Ç¤¢¤ê¡¢ °ìÃפò¼è¤ëÂоݤΥƥ­¥¹¥È¤Î¹ÔƬ¤Î¤ß¤Ë°ìÃפ¹¤ë¡£ ¤½¤ì°Ê³°¤Ç¤Ï¡¢°ìÃפ˼ºÇÔ¤¹¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘^foo’¤Ï¡¢¹ÔƬ¤Ë¤¢¤ë‘foo’¤Ë°ìÃפ¹¤ë¡£

¥Ð¥Ã¥Õ¥¡¤Î¤«¤ï¤ê¤Ëʸ»úÎó¤È°ìÃפò¼è¤ë¤È¤­¤Ë¤Ï¡¢ ‘^’¤Ïʸ»úÎó¤ÎÀèÆ¬¤ä²þ¹Ôʸ»ú‘\n’¤Î¤¦¤·¤í¤Ë°ìÃפ¹¤ë¡£

$

^’¤ÈƱÍͤÀ¤¬¹ÔËö¤Î¤ß¤Ë°ìÃפ¹¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘x+$’¤Ï¡¢ ¹ÔËö¤Ë¤¢¤ë1ʸ»ú°Ê¾å¤Î‘x’¤«¤éÀ®¤ëʸ»úÎó¤Ë°ìÃפ¹¤ë¡£

¥Ð¥Ã¥Õ¥¡¤Î¤«¤ï¤ê¤Ëʸ»úÎó¤È°ìÃפò¼è¤ë¤È¤­¤Ë¤Ï¡¢ ‘$’¤Ïʸ»úÎó¤ÎËöÈø¤ä²þ¹Ôʸ»ú‘\n’¤Î¤Þ¤¨¤Ë°ìÃפ¹¤ë¡£

\

2¤Ä¤Îµ¡Ç½¤¬¤¢¤ë¡£ ¡Ê‘\’¤ò´Þ¤à¡ËÆÃÊ̤Êʸ»ú¤ò¥¯¥©¡¼¥È¤¹¤ë¡Ê°ÕÌ£¤òÍÞ¤¨¤ë¡Ë¤³¤È¤È¡¢ ÆÃÊ̤ʹ½À®¤òƳÆþ¤¹¤ë¤³¤È¤Ç¤¢¤ë¡£

\’¤ÏÆÃÊ̤Êʸ»ú¤ò¥¯¥©¡¼¥È¤¹¤ë¤Î¤Ç¡¢ ‘\$’¤Ïʸ»ú‘$’¤À¤±¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¡¢ ‘\[’¤Ïʸ»ú‘[’¤À¤±¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¡¢ ¤È¤¤¤Ã¤¿¶ñ¹ç¤Ë¤Ê¤ë¡£

\’¤Ë¤ÏLispʸ»úÎó¤ÎÆþÎϹ½Ê¸¡Êsee String Type¡Ë¤Ç¤â ÆÃÊ̤ʰÕÌ£¤¬¤¢¤ê¡¢‘\’¤Ç¥¯¥©¡¼¥È¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤Û¤·¤¤¡£ ¤¿¤È¤¨¤Ð¡¢Ê¸»ú‘\’¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤Ï‘\\’¤Ç¤¢¤ë¡£ ʸ»ú·²‘\\’¤ò´Þ¤àLispʸ»úÎó¤ò½ñ¤¯¤Ë¤Ï¡¢³Æ‘\’¤ò¥¯¥©¡¼¥È¤¹¤ë¤¿¤á¤Ë ‘\’¤¬É¬ÍפǤ¢¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘\’¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤ÎÆþÎϹ½Ê¸¤Ï"\\\\"¤Ç¤¢¤ë¡£

Ãí°Õ¡§ ½¾Íè¤È¤Î¸ß´¹À­¤Î¤¿¤á¤Ë¡¢ ÆÃÊ̤Êʸ»ú¤¬¤½¤ì¤é¤ÎÆÃÊ̤ʰÕÌ£¤ò¤Ê¤·¤¨¤Ê¤¤Ê¸Ì®¤Ç»È¤ï¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢ ÉáÄ̤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ ¤¿¤È¤¨¤Ð¡¢‘*foo’¤Ç¤Ï¡¢‘*’¤ÎÂоݤȤʤëÀµµ¬É½¸½¤¬Ä¾Á°¤Ë¤Ê¤¤¤¿¤á¡¢ ‘*’¤ÏÉáÄ̤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£ ¤³¤Î¤è¤¦¤Ê¤Õ¤ë¤Þ¤¤¤Ë°Í¸¤¹¤ë¤³¤È¤Ï¤è¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¡£ ÆÃÊ̤Êʸ»ú¤Ï½ñ¤¯°ÌÃ֤˴ط¸¤Ê¤¯¥¯¥©¡¼¥È¤¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£

¿¤¯¤Î¾ì¹ç¡¢Ç¤°Õ¤Îʸ»ú¤òȼ¤¦‘\’¤Ï¤½¤Îʸ»ú¤À¤±¤Ë°ìÃפ·¤Þ¤¹¡£ ¤·¤«¤·¡¢¤¤¤¯¤Ä¤«Îã³°¤¬¤¢¤Ã¤Æ¡¢ ‘\’¤Ç»Ï¤Þ¤ë2ʸ»úÎ󤬯ÃÊ̤ʰÕÌ£¤ò»ý¤Ä¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ ¡Ê2ʸ»úÌܤˤ¯¤ëʸ»ú¤Ï¡¢ ñÆÈ¤Ç»È¤Ã¤¿¾ì¹ç¤Ë¤Ï¤Ä¤Í¤ËÉáÄ̤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£¡Ë °Ê²¼¤Ë‘\’¤Î¹½À®¤ò¼¨¤·¤Þ¤¹¡£

\|

ÁªÂò»è¤ò»ØÄꤹ¤ë¡£ ‘\|’¤ò¤¢¤¤¤À¤Ëȼ¤Ã¤¿2¤Ä¤ÎÀµµ¬É½¸½a¤Èb¤Ï¡¢ a¤«b¤Î¤¤¤º¤ì¤«¤Ë°ìÃפ¹¤ëʸ»úÎó¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤È¤Ê¤ë¡£

¤·¤¿¤¬¤Ã¤Æ¡¢‘foo\|bar’¤Ï¡¢‘foo’¤ä‘bar’¤Ë°ìÃפ¹¤ë¤¬¡¢ ¤½¤ì°Ê³°¤Îʸ»úÎó¤Ë¤Ï°ìÃפ·¤Ê¤¤¡£

\|’¤Ï¡¢¼þ°Ï¤Ë¤¢¤ëŬÍѤ·¤¦¤ëÀµµ¬É½¸½¤ÎÃæ¤Ç¤âºÇÂç¤Î¤â¤Î¤ËŬÍѤµ¤ì¤ë¡£ ‘\|’¤Ë¤è¤ë¥°¥ë¡¼¥×²½¤òÀ©¸Â¤¹¤ë¤Î¤Ï¡¢ ¤³¤ì¤ò°Ï¤à‘\( … \)’¤Ë¤è¤ë¥°¥ë¡¼¥×²½¤À¤±¤Ç¤¢¤ë¡£

²¿ÅÙ‘\|’¤ò»È¤Ã¤Æ¤â½èÍý¤Ç¤­¤ë¤À¤±¤Î½½Ê¬¤Ê¥Ð¥Ã¥¯¥È¥é¥Ã¥¯Ç½ÎϤ¬¤¢¤ë¡£

\( … \)

°Ê²¼¤Î3¤Ä¤ÎÌÜŪ¤ò²Ì¤¿¤¹¥°¥ë¡¼¥×²½¤Î¤¿¤á¤Î¹½À®¡£

  1. ¾¤ÎÁàºî¤Ë»È¤¦¤¿¤á¤Ë°ìÏ¢¤ÎÁªÂò»è‘\|’¤ò³ç¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘\(foo\|bar\)x’¤Ï¡¢ ‘foox’¤«‘barx’¤Î¤¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë¡£
  2. ¸åÃֱ黻»Ò¡¢‘*’¡¢‘+’¡¢‘?’¤òŬÍѤǤ­¤ë¤è¤¦¤Ë¡¢ Ê£»¨¤ÊÀµµ¬É½¸½¤ò³ç¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘ba\(na\)*’¤Ï¡¢ ‘bananana’¤Î¤è¤¦¤Ë¡¢¡Ê0¸Ä°Ê¾å¤Î¡ËǤ°Õ¸Ä¤Î ʸ»úÎó‘na’¤Ë°ìÃפ¹¤ë¡£
  3. ¤¢¤È¤Ç»²¾È¤Ç¤­¤ë¤è¤¦¤Ë¡¢°ìÃפ·¤¿Éôʬʸ»úÎó¤òµ­Ï¿¤¹¤ë¡£

ºÇ¸å¤Î»È¤¤Êý¤Ï¡¢³ç¸Ì¤Ë¤è¤ë¥°¥ë¡¼¥×²½¤È¤¤¤¦¹Í¤¨Êý¤«¤é ÇÉÀ¸¤·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¤¡£ Ʊ°ì¤Î‘\( … \)’¹½À®¤ËÍ¿¤¨¤¿2¤Ä¤á¤ÎÊ̤ε¡Ç½¤Ç¤¢¤ë¡£ ¼ÂÍѾ塢¤³¤ì¤é2¤Ä¤Î°ÕÌ£¤¬º®Æ±¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¤«¤é¤Ç¤¢¤ë¡£ ¤³¤Îµ¡Ç½¤ò¤Ä¤®¤ËÀâÌÀ¤¹¤ë¡£

\digit

dÈÖÌܤ˸½¤ì¤¿‘\( … \)’¤Ë°ìÃפ·¤¿¥Æ¥­¥¹¥È¤È Ʊ¤¸¥Æ¥­¥¹¥È¤Ë°ìÃפ¹¤ë¡£

¤¤¤¤¤«¤¨¤ì¤Ð¡¢°ìÃפò½èÍý¤¹¤ë¤È¤­¤Ë¤Ï¡¢ ‘\( … \)’¹½À®¤ÎËöÈø¤Ë㤹¤ë¤È¡¢ ¤³¤Î¹½À®¤Ë°ìÃפ·¤¿¥Æ¥­¥¹¥È¤Î»Ï¤á¤È½ª¤ê¤òµ­Ï¿¤¹¤ë¡£ ¤½¤·¤Æ¡¢Àµµ¬É½¸½¤Î¤½¤ì¤è¤ê¤¦¤·¤í¤Ç¤Ï¡¢ ¡ØdÈÖÌܤ˸½¤ì¤¿‘\( … \)’¤Ë°ìÃפ·¤¿¥Æ¥­¥¹¥È¡Ù¤È¤¤¤¦°ÕÌ£¤Ç ¤½¤ì¤¬¤Ê¤ó¤Ç¤¢¤í¤¦¤È‘\’¤Ë³¤±¤Æ¿ô»úd¤ò»È¤¨¤ë¡£

1¤Ä¤ÎÀµµ¬É½¸½Æâ¤Ë¸½¤ì¤ëºÇ½é¤Î9¸Ä¤Î‘\( … \)’¤Ë°ìÃפ¹¤ëʸ»úÎó¤Ë¤Ï¡¢ Àµµ¬É½¸½Ãæ¤Ç³«¤­³ç¸Ì¤¬¸½¤ì¤¿½ç¤Ë¡¢1¤«¤é9¤Þ¤Ç¤ÎÈÖ¹æ¤ò³ä¤ê¿¶¤ë¡£ ¤½¤Î¤¿¤á¡¢‘\1’¤«¤é‘\9’¤Ç¡¢ Âбþ¤¹¤ë‘\( … \)’¤Ë°ìÃפ·¤¿¥Æ¥­¥¹¥È¤ò»²¾È¤Ç¤­¤ë¡£

¤¿¤È¤¨¤Ð¡¢‘\(.*\)\1’¤Ï¡¢²þ¹Ô¤ò´Þ¤Þ¤Ê¤¤Ê¸»úÎó¤Ç¡¢¤«¤Ä¡¢ Á°È¾¤È¸åȾ¤¬Æ±°ì¤Ç¤¢¤ëʸ»úÎó¤Ë°ìÃפ¹¤ë¡£ ‘\(.*\)’¤ÏÁ°È¾Éôʬ¤Ë°ìÃפ·¡¢¤½¤ì¤Ï¤É¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤â¤«¤Þ¤ï¤Ê¤¤¡£ °ìÊý¡¢¤½¤ì¤Ë³¤¯‘\1’¤Ï¡¢ Á°È¾Éôʬ¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¥Æ¥­¥¹¥È¤Ë°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

\w

Ǥ°Õ¤Îñ¸ì¹½À®Ê¸»ú¤Ë°ìÃפ¹¤ë¡£ ¥¨¥Ç¥£¥¿¤Î¹½Ê¸¥Æ¡¼¥Ö¥ë¤Ë¤è¤Ã¤Æ¤³¤Îʸ»ú¤¬·è¤Þ¤ë¡£ see Syntax Tables¡£

\W

ñ¸ì¹½À®Ê¸»ú°Ê³°¤Îʸ»ú¤Ë°ìÃפ¹¤ë¡£

\scode

¹½Ê¸¥³¡¼¥É¤¬code¤Ç¤¢¤ëʸ»ú¤À¤±¤Ë°ìÃפ¹¤ë¡£ ¤³¤³¤Ç¡¢code¤Ï¹½Ê¸¥³¡¼¥É¤òɽ¤¹Ê¸»ú¤Ç¤¢¤ë¡£ ¤Ä¤Þ¤ê¡¢‘w’¤Ïñ¸ì¹½À®Í×ÁǤò¡¢ ‘-’¤ÏÇòʸ»ú¤ò¡¢‘(’¤Ï³«¤­³ç¸Ì¤òɽ¤¹¤È¤¤¤Ã¤¿¶ñ¹ç¤Ç¤¢¤ë¡£ Çòʸ»ú¤Î¹½Ê¸¤òɽ¤¹¤Ë¤Ï¡¢‘-’¤«¶õÇò¤Î¤¤¤º¤ì¤«¤ò»È¤¦¡£ ¹½Ê¸¥³¡¼¥É¤È¤½¤ì¤é¤òɽ¤¹Ê¸»ú¤Î°ìÍ÷¤Ë¤Ä¤¤¤Æ¤Ï¡¢ see Syntax Class Table¡£

\Scode

¹½Ê¸¤¬code¤Ç¤Ê¤¤Ç¤°Õ¤Îʸ»ú¤Ë°ìÃפ¹¤ë¡£

¤Ä¤®¤ÎÀµµ¬É½¸½¤Ï¶õ¤Îʸ»úÎó¤Ë°ìÃפ·¤Þ¤¹¡£ ¤Ä¤Þ¤ê¤³¤ì¤é¤Ïʸ»ú¤ò»ÈÍѤ·¤Þ¤»¤ó¤¬¡¢ ¤³¤ì¤é¤¬°ìÃפ¹¤ë¤«¤É¤¦¤«Ê¸Ì®¤Ë°Í¸¤·¤Þ¤¹¡£

\`

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢ °ìÃ×ÂоݤǤ¢¤ë¥Ð¥Ã¥Õ¥¡¤äʸ»úÎó¤ÎÀèÆ¬¤Ë¸Â¤ë¡£

\'

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢ °ìÃ×ÂоݤǤ¢¤ë¥Ð¥Ã¥Õ¥¡¤äʸ»úÎó¤ÎËöÈø¤Ë¸Â¤ë¡£

\=

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢¥Ý¥¤¥ó¥È°ÌÃ֤˸¤롣 ¡Êʸ»úÎó¤ËÂФ¹¤ë°ìÃפǤϤ³¤Î¹½Ê¸¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¡£¡Ë

\b

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢Ã±¸ì¤ÎÀèÆ¬¤äËöÈø¤Ë¸Â¤ë¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢‘\bfoo\b’¤Ï¡¢Ã±¸ì¤È¤·¤ÆÆÈΩ¤·¤Æ¸½¤ì¤ë‘foo’¤Ë°ìÃפ¹¤ë¡£ ‘\bballs?\b’¤Ï¡¢Ã±¸ì¤È¤·¤ÆÆÈΩ¤·¤Æ¸½¤ì¤ë ‘ball’¤ä‘balls’¤Ë°ìÃפ¹¤ë¡£

\b’¤Ï¡¢ ¥Ð¥Ã¥Õ¥¡¤ÎÀèÆ¬¤äËöÈø¤Ë¤¢¤ë¥Æ¥­¥¹¥È¤È¤Ï̵´Ø·¸¤Ë¡¢ ¥Ð¥Ã¥Õ¥¡¤ÎÀèÆ¬¤äËöÈø¤Ë¤â°ìÃפ¹¤ë¡£

\B

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢Ã±¸ì¤ÎÀèÆ¬¤äËöÈø°Ê³°¤Ë¸Â¤ë¡£

\<

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢Ã±¸ì¤ÎÀèÆ¬¤Ë¸Â¤ë¡£ ‘\<’¤Ï¥Ð¥Ã¥Õ¥¡¤ÎÀèÆ¬¤Ë¤â°ìÃפ¹¤ë¤¬¡¢Ã±¸ì¹½À®Ê¸»ú¤¬Â³¤¯¾ì¹ç¤Ë¸Â¤ë¡£

\>

¶õ¤Îʸ»úÎó¤Ë°ìÃפ¹¤ë¤¬¡¢Ã±¸ì¤ÎËöÈø¤Ë¸Â¤ë¡£ ‘\>’¤Ï¥Ð¥Ã¥Õ¥¡¤ÎËöÈø¤Ë¤â°ìÃפ¹¤ë¤¬¡¢ ñ¸ì¹½À®Ê¸»ú¤Ç½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤ë¡£

Ǥ°Õ¤Îʸ»úÎó¤¬Àµ¤·¤¤Àµµ¬É½¸½¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢¡Ê‘[]]’¤Î¤è¤¦¤Ê¾¯¿ô¤ÎÎã³°¤ò½ü¤±¤Ð¡Ë ³Ñ³ç¸Ì¤¬Âбþ¤·¤Æ¤¤¤Ê¤¤Ê¸»úÎó¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¤·¡¢ 1¤Ä¤Î‘\’¤Ç½ª¤ëʸ»úÎó¤âÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ÉÔÀµ¤ÊÀµµ¬É½¸½¤òõº÷´Ø¿ô¤ËÅϤ¹¤È¡¢ ¥¨¥é¡¼invalid-regexp¤¬ÄÌÃΤµ¤ì¤Þ¤¹¡£

Function: regexp-quote string

¤³¤Î´Ø¿ô¤Ï¡¢string¤À¤±¤ËÀµ³Î¤Ë°ìÃפ¹¤ëÀµµ¬É½¸½¤Îʸ»úÎó¤òÊÖ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢Àµµ¬É½¸½¤òɬÍפȤ¹¤ë´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹¤È¤­¤Ë ¤³¤Îʸ»úÎó¤À¤±¤ËÀµ³Î¤Ë°ìÃפǤ­¤ë¡£

(regexp-quote "^The cat$")
     ⇒ "\\^The cat\\$"

regexp-quote¤ÎÍÑÅÓ¤Î1¤Ä¤Ï¡¢ Àµµ¬É½¸½¤Çµ­½Ò¤µ¤ì¤¿Ê¸Ì®¤ËÀµ³Î¤Ë°ìÃפ¹¤ëʸ»úÎó¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ç¤¢¤ë¡£ ¤¿¤È¤¨¤Ð¡¢¤Ä¤®¤Ï¡¢Çòʸ»ú¤Ç°Ï¤Þ¤ì¤¿string¤ÎÃͤÇɽ¤µ¤ì¤ëʸ»úÎó¤òõº÷¤¹¤ë¡£

(re-search-forward
 (concat "\\s-" (regexp-quote string) "\\s-"))
Function: regexp-opt strings &optional paren

¤³¤Î´Ø¿ô¤Ï¡¢Ê¸»úÎóstrings¤Î¤¤¤º¤ì¤«¤Ë°ìÃפ¹¤ë ¸úΨ¤è¤¤Àµµ¬É½¸½¤òÊÖ¤¹¡£ ¤³¤ì¤Ï¡¢¤¿¤È¤¨¤Ð¥Õ¥©¥ó¥È¥í¥Ã¥¯¡Êfont-lock¡Ë¥â¡¼¥É¤Ê¤É¤Ç¡¢ ²Äǽ¤Ê¸Â¤ê¹â®¤Ê°ìÃפäõº÷¤ò¹Ô¤¦É¬Íפ¬¤¢¤ë¾ì¹ç¤ËÍ­ÍѤǤ¢¤ë¡£

¾Êά²Äǽ¤Ê°ú¿ôparen¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ ÊÖ¤µ¤ì¤ëÀµµ¬É½¸½¤Ï¤Ä¤Í¤Ë¾¯¤Ê¤¯¤È¤â1¤Ä¤Î³ç¸Ì¤Ë¤è¤ë¥°¥ë¡¼¥×¹½Ê¸¤Ç°Ï¤Þ¤ì¤ë¡£

¤Ä¤®¤Îregexp-opt¤Î´ÊάÈÇÄêµÁ¤Ï¡¢ ¼ÂºÝ¤ÎÃͤËÅù²Á¤Ê¡Ê¤¿¤À¤·¤½¤ì¤Û¤É¸úΨ¤è¤¯¤Ê¤¤¡ËÀµµ¬É½¸½¤òÀ¸À®¤¹¤ë¡£

(defun regexp-opt (strings paren)
  (let ((open-paren (if paren "\\(" ""))
        (close-paren (if paren "\\)" "")))
    (concat open-paren
            (mapconcat 'regexp-quote strings "\\|")
            close-paren)))
Function: regexp-opt-depth regexp

¤³¤Î´Ø¿ô¤Ï¡¢regexpÆâ¤Î¥°¥ë¡¼¥×²½¹½Ê¸¡Ê³ç¸Ì¤Ç³ç¤Ã¤¿¼°¡Ë¤Î Áí¸Ä¿ô¤òÊÖ¤¹¡£


Next: , Previous: Regular Expressions, Up: Regular Expressions   [Contents][Index]