パスワードを忘れた? アカウント作成
451856 journal

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原著者のことばを参照せよ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...