正則表達(dá)式實(shí)際上不是ANSI C的一部分,聽(tīng)起來(lái)您可能在談?wù)揚(yáng)OSIX正則表達(dá)式庫(kù),它附帶了大多數(shù)(所有?)*nix。下面是一個(gè)在C中使用POSIX正則表達(dá)式的示例(基于這,這個(gè)):
#include <regex.h> regex_t regex;int reti;char msgbuf[100];/* Compile regular expression */reti = regcomp(®ex, "^a[[:alnum:]]", 0);if (reti) {
fprintf(stderr, "Could not compile regex\n");
exit(1);}/* Execute regular expression */reti = regexec(®ex, "abc", 0, NULL, 0);if (!reti) {
puts("Match");}else if (reti == REG_NOMATCH) {
puts("No match");}else {
regerror(reti, ®ex, msgbuf, sizeof(msgbuf));
fprintf(stderr, "Regex match failed: %s\n", msgbuf);
exit(1);}/* Free memory allocated to the pattern buffer by regcomp() */regfree(®ex);
或者,您可能想要退房。PCRE中與Perl兼容的正則表達(dá)式庫(kù)。Perl語(yǔ)法與Java、Python和許多其他語(yǔ)言中使用的語(yǔ)法基本相同。POSIX語(yǔ)法是grep
, sed
, vi
等