c_cpp ç言语で正规表现で検索を行う

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp ç言语で正规表现で検索を行う相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <regex.h>

void put_n_char(const char *s, regoff_t so, regoff_t eo)
{
    const char * const ep = s + eo;

    for(s += so; s != ep; s++) putchar(*s);
}

int main(void)
{
    regex_t reg;
    const char *pattern = "h(ttp:(//))([[:alnum:]./]+)";

    regmatch_t match[5];
    int match_elems = sizeof match / sizeof match[0];

    char *s[] = {
        "http://www.example.com",
        "123http://www.google.com/",
    };
    int s_elems = sizeof s / sizeof s[0];

    int i, j;

    regcomp(&reg, pattern, REG_EXTENDED);

    for(i = 0; i < s_elems; i++) {
        if(regexec(&reg, s[i], match_elems, match, 0) != REG_NOMATCH) {

            for(j = 0; j < match_elems; j++) {
                // 注: 実装によっては regoff_t は単純な int でない可能性がある
                printf("%2lld, %2lld: ", match[j].rm_so, match[j].rm_eo);
                if(match[j].rm_so >= 0)
                    put_n_char(s[i], match[j].rm_so, match[j].rm_eo);
                puts("");
            }
        }
        puts("");
    }

    regfree(&reg);

    return 0;
}

以上是关于c_cpp ç言语で正规表现で検索を行う的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 自力で,HTTPサーバーをÇ言语で1から作る!

python LIBSVMの学习データのスケーリングを行う。

php 【WordPress的】复数のタクソノミを条件に使った复合検索をする

python テキストファイルの全ての行に共通の置换处理を行う。

text 主机ファイルを编集してサーバー移行时の动作确认を行う

golang 去言语正规表现テスト