2016-08-04 6 views
-2

私はCプログラミングの初心者です。どのような組み込み関数のように、Cの文字列内のパターンを一致させることは可能ですか?Cプログラムでパターンマッチングを使用できますか?

私はRed Hat Linuxを使用していて、文字列がabc:またはdef:で始まり、次に10桁の数字@文字で始まるかどうかを確認したいと考えています。何かのように:(abc|def):([0-9]{10})@([A-Za-z0-9]*)

このパターンマッチングをチェックするために使用できるCビルトイン関数はありますか?

ありがとうございました。

答えて

1

linuxでPOSIX正規表現マッチングを使用できます。詳細については、man 3 regexを参照してください。 高速で安全なスレッドライブラリをお探しの場合は、pre-compiled regexのようなサポートでGoogleのre2ライブラリを使用できます。 (https://github.com/google/re2

0

LinuxおよびPOSIXには、regex(3)機能があります。 regcompを最初に使用して正規表現の文字列を変換することによって準備する "コンパイル"が必要です。

は、いくつかの簡単な例では、あなたも同じように、他の文字列関数を使用する場合があります strstrstrchrsscanf(3)%n書式指定子は、便利かもしれないあなたがスキャンしているどのくらいのバイトを知っています)。

lexingユーティリティを使用して、おそらくflexを使用して正規表現を認識できるトークナイザを生成することもできます。

関連する問題