私は正規表現が苦手なので、Word文書内からすべてのC関数宣言を抽出する正規表現の助けが必要です。docという単語をメモリにロードし、テキストを読んだので、それは問題ではありません。また、すべての関数はINTERNAL_で始まり、明らかに)で終わります。例えば
INTERNAL_DisplayMessage(param a、int b);
したがって、基本的に、関数宣言全体をINTERNAL_から;に抽出する正規表現が必要です。戻り値はすべてのAPIで同じであるため、関係ありません。
この正規表現を使用する必要があります:
(INTERNAL_[^ ]+?\s?\(.*?\);)
外側の括弧は、グループ内にキャプチャされる関数のすべてのテキストを作成します。
関数宣言の括弧はバックスラッシュでエスケープ\(
\)
されるため、グループ化ではなくリテラルとして扱われます。
[^ ]\s?
スペースではない文字を意味し、1回以上、先頭の括弧の直前にオプションのスペースが続く
.*?
可能な限り任意の文字、*
任意の回数(oを含む)を意味します
RegexOptions.Singleline
関数宣言には\nが含まれているため、Regexコンストラクターの2番目のパラメーターとしてオプションを使用して正規表現を作成する必要があります。
単一行モードを指定します。ドット(。)の意味を変更して、(\ nを除くすべての文字ではなく)すべての文字に一致するようにします。
次のドキュメントを参照してください:RegexOptions Enumeration
正規表現をチェックするのに適した場所は次のとおりです。
言語を変更したり、オプションを設定したりできます。SinleLineオプションについては、そのページの「改行(単一行)」オプションを除くすべての文字ではなく、「ドット(。)」がすべての文字に一致することを確認してください。
(INTERNAL_.+?\);)
動作するはずの単純なもの。これらのタイプのタスクにはRegExrを強くお勧めします。