用于提取所有函数声明的正则表达式
本文关键字:声明 正则表达式 函数 提取 用于 | 更新日期: 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选项,选中该页面上的"点(.(匹配每个字符,而不是除换行符(单行(之外的每个字符"选项。