0

私は正規表現が苦手なので、Word文書内からすべてのC関数宣言を抽出する正規表現の助けが必要です。docという単語をメモリにロードし、テキストを読んだので、それは問題ではありません。また、すべての関数はINTERNAL_で始まり、明らかに)で終わります。例えば

INTERNAL_DisplayMessage(param a、int b);

したがって、基本的に、関数宣言全体をINTERNAL_から;に抽出する正規表現が必要です。戻り値はすべてのAPIで同じであるため、関係ありません。

4

2 に答える 2

2

この正規表現を使用する必要があります:

  (INTERNAL_[^ ]+?\s?\(.*?\);)

外側の括弧は、グループ内にキャプチャされる関数のすべてのテキストを作成します。

関数宣言の括弧はバックスラッシュでエスケープ\( \)されるため、グループ化ではなくリテラルとして扱われます。

[^ ]\s?スペースではない文字を意味し、1回以上、先頭の括弧の直前にオプションのスペースが続く

.*?可能な限り任意の文字、*任意の回数(oを含む)を意味します

RegexOptions.Singleline関数宣言には\nが含まれているため、Regexコンストラクターの2番目のパラメーターとしてオプションを使用して正規表現を作成する必要があります。

単一行モードを指定します。ドット(。)の意味を変更して、(\ nを除くすべての文字ではなく)すべての文字に一致するようにします。

次のドキュメントを参照してください:RegexOptions Enumeration

正規表現をチェックするのに適した場所は次のとおりです。

www.regexplanet.com

言語を変更したり、オプションを設定したりできます。SinleLineオプションについては、そのページの「改行(単一行)」オプションを除くすべての文字ではなく、「ドット(。)」がすべての文字に一致することを確認してください。

于 2012-05-08T23:06:58.757 に答える
2

(INTERNAL_.+?\);)動作するはずの単純なもの。これらのタイプのタスクにはRegExrを強くお勧めします。

于 2012-05-08T22:27:58.233 に答える