0

私は次の問題を扱っています。有効な URL に特定のパターンが含まれているかどうか、具体的には、たとえば第 3 レベルのドメインがあるかどうかを確認したいと考えています。strstr が * (アスタリスク) などの正規表現を受け入れないことを除いて、このようなものが必要です... 助けてもらえますか?

if (strstr(url, ".*")) {
      printf("third domain: yes\n");
} else {
      printf("third domain: no\n"); };
4

1 に答える 1

0

POSIX regex またはPCREライブラリを使用できます

GNU C Library、正規表現を照合するための 2 つのインターフェイスをサポートしています。1 つは で、もう 1 つはstandard POSIX.2 interfaceですGNU C Library has had for many years

どちらのインターフェイスもヘッダー ファイルで宣言されていますregex.h。を定義する_POSIX_C_SOURCEと、POSIX.2 functions, structures, and constants are declared.

これらのライブラリ関数の助けを借りて、正規表現が指定された文字列と一致するかどうかを確認できます。

reti = regexec(&regex, url, 0, NULL, 0);
        if( !reti ){
                puts("Match");
        }

さらにマッチを交換できます。

C での POSIX 正規表現の例

于 2013-09-27T19:21:46.623 に答える