用于提取所有函数声明的正则表达式

本文关键字:声明 正则表达式 函数 提取 用于 | 更新日期: 2023-09-27 18:33:30

我不擅长正则表达式,所以我需要一个正则表达式的帮助,它将从word文档中提取所有C函数声明。我已经在内存中加载了单词doc并阅读了文本,所以这不是问题。此外,所有函数都以 INTERNAL_ 开头,显然以 (;例如

INTERNAL_DisplayMessage ( 参数 a, int b (;

所以基本上,我需要正则表达式将整个函数声明从 INTERNAL_ 提取到 ;。所有 API 的返回值都相同,因此无关紧要。

用于提取所有函数声明的正则表达式

(INTERNAL_.+?');)这样简单的东西应该可以工作。我强烈推荐RegExr用于这些类型的任务。

你需要使用这个正则表达式:

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

外括号使函数的所有文本在组中捕获。

函数声明括号用反斜杠'( ')转义,因此它们被视为文字,而不是分组。

[^ ]'s? 表示任何一次或多次不是空格的字符,在左括号之前加上一个可选空格

.*? 表示任何字符,*任意次数(包括 o(,尽可能少

由于函数声明中包含 ',因此需要使用 RegexOptions.Singleline 选项作为正则表达式构造函数的第二个参数来创建正则表达式:

指定单行模式。更改点 (.( 的含义,使其匹配每个字符(而不是除 ' 之外的每个字符(。

请参阅文档:正则表达式选项枚举

一个查看正则表达式的好地方是这个:

www.regexplanet.com

它允许您更改语言和设置选项。对于SinleLine选项,选中该页面上的"点(.(匹配每个字符,而不是除换行符(单行(之外的每个字符"选项。