enhydraの日記: Cの正規表現を初体験 ←なんか嫌
日記 by
enhydra
なんとなくCでregexpライブラリを使いたくなったので使ってみた。厳密にはApache APIの皮が被っているから違うんだけど、中身は殆どPOSIXのregexなのでよしとしよう。
regex_t *regexp;
regmatch_t regmatch[10];
char strings[] = "hogefugehage";
char *sub_strings;regexp = ap_pregcomp(r->pool, "^hoge(fuge)hage", REG_EXTENDED);
if(ap_regexec(regexec(regexp, strings, regexp->re_nsub+1, regmatch, 0)) {
/* mismatch */
}
sub_string = ap_pregsub(r->pool, "moemoe-$1", line, regexp->re_nsub+1, regmatch);ap_pregfree(r->pool, regexp);
なげーよっ。
Perlで書くと
$strings =~ s/^hoge(fuge)hage/moemoe-$1/;
$sub_strings = $strings;
うーん やっぱりLallyは神。たとえ日本について知っていることでアニメネタしか出てこないとしても神。詳しくはProgramming Perl, 3rd Editionの原著者のことばを参照せよ。
Cの正規表現を初体験 ←なんか嫌 More ログイン