Next: Format, Previous: Translit, Up: Text handling [Contents][Index]
ʸ»úÎó¤ÎÁ´ÃÖ´¹¡Êglobal substitution¡Ë¤Ïpatsubst
¤Ç¹Ô¤¤¤Þ¤¹¡£
patsubst(string, regexp, opt replacement)
stringÃæ¤Çregexp¤Ë¥Þ¥Ã¥Á¤¹¤ëÉôʬ¤òõ¤·¡¢ ¤½¤ì¤é¤ò¤¹¤Ù¤Æreplacement¤ËÃÖ´¹¤·¤Þ¤¹¡£ Àµµ¬É½¸½¤Î¹½Ê¸¤ÏGNU Emacs¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¹¡£
string¤ÎÃæ¤Çregexp¤ËŬ¹ç¤¹¤ë¤É¤Î²Õ½ê¤Ë¤â´Þ¤Þ¤ì¤Ê¤¤Éôʬ¤ÏŸ³«¸å¤Î ¥Æ¥¥¹¥È¤Ë¤½¤Î¤Þ¤Þ»Ä¤ê¤Þ¤¹¡£ ¥Þ¥Ã¥Á¤¹¤ë²Õ½ê¤¬¸«¤Ä¤«¤ë¤¿¤Ó¤Ë¡¢ ¥µ¡¼¥Á¤Ï¤½¤Î¥Þ¥Ã¥Á¤·¤¿²Õ½ê¤Î½ª¤ê¤«¤é³¹Ô¤µ¤ì¤Þ¤¹¡£ ¤·¤¿¤¬¤Ã¤ÆstringÆâ¤Î¤¢¤ëʸ»ú¤¬2²óÃÖ´¹¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤¢¤ê¤Þ¤»¤ó¡£ regexp¤¬Ä¹¤µ0¤Îʸ»úÎó¤Ë¥Þ¥Ã¥Á¤·¤¿¤È¤¤Ï¡¢ ̵¸Â¥ë¡¼¥×¤òÈò¤±¤ë¤¿¤á¥µ¡¼¥Á¤Î³«»Ï°ÌÃÖ¤Ï1ʸ»úÁ°¤Ë¿Ê¤á¤é¤ì¤Þ¤¹¡£
ÃÖ¤´¹¤¨¤¬¹Ô¤ï¤ì¤ë¤È¤¤Ï¡¢replacement¤Ë´Þ¤Þ¤ì¤ë‘\n’¤ò regexpÆâ¤Î¥«¥Ã¥³¤Ç¤¯¤¯¤é¤ì¤¿nÈÖÌܤÎÉôʬ¼°¤Ë¥Þ¥Ã¥Á¤·¤¿¥Æ¥¥¹¥È ¤ËÃÖ¤´¹¤¨¡¢‘\&’¤òÀµµ¬É½¸½Á´ÂΤ˥ޥåÁ¤·¤¿¥Æ¥¥¹¥È¤ËÃÖ¤´¹¤¨¤¿¤â¤Î¤¬ Ÿ³«¸å¤Î¥Æ¥¥¹¥È¤ËÁÞÆþ¤µ¤ì¤Þ¤¹¡£
°ú¿ôreplacement¤Ï¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤½¤Î¤È¤¤Ïregexp¤Ë¥Þ¥Ã¥Á¤·¤¿¥Æ¥¥¹¥È¤Ïºï½ü¤µ¤ì¤Þ¤¹¡£
patsubst(`GNUs not Unix', `^', `OBS: ') ⇒OBS: GNUs not Unix patsubst(`GNUs not Unix', `\<', `OBS: ') ⇒OBS: GNUs OBS: not OBS: Unix patsubst(`GNUs not Unix', `\w*', `(\&)') ⇒(GNUs)() (not)() (Unix) patsubst(`GNUs not Unix', `\w+', `(\&)') ⇒(GNUs) (not) (Unix) patsubst(`GNUs not Unix', `[A-Z][a-z]+') ⇒GN not
¼¡¤Ï¤â¤¦¤¹¤³¤·¸½¼ÂŪ¤ÊÎã¤Ç¤¹¡£
ʸ»úÎó¤ÎÃæ¤Ë¥Þ¥¯¥íupcase
¤Èdowncase
¤Î¸Æ¤Ó½Ð¤·¤òÁÞÆþ¤¹¤ë¤³¤È¤Ç¡¢
ñÆÈ¤Îñ¸ì¤Þ¤¿¤ÏʸÁ´ÂΤò¥¥ã¥Ô¥¿¥é¥¤¥º¡Êcapitalize¡Ë¤·¤Þ¤¹¡£
define(`upcase', `translit(`$*', `a-z', `A-Z')')dnl define(`downcase', `translit(`$*', `A-Z', `a-z')')dnl define(`capitalize1', `regexp(`$1', `^\(\w\)\(\w*\)', `upcase(`\1')`'downcase(`\2')')')dnl define(`capitalize', `patsubst(`$1', `\w+', `capitalize1(`\&')')')dnl capitalize(`GNUs not Unix') ⇒Gnus Not Unix
ÁȤ߹þ¤ß¥Þ¥¯¥ípatsubst
¤Ï°ú¿ô¤òÍ¿¤¨¤¿¤È¤¤À¤±Ç§¼±¤µ¤ì¤Þ¤¹¡£