背景是,我有一个复杂的记忆问题在 Delphi 中。但有一种理论认为,5 个值的枚举可能是错误的根源。所以我的问题是:
如何编写正则表达式来搜索源文件中具有 5 个值的枚举?Delphi 中的枚举如下所示
myEnum = (value1,value2,value3,value4,value5);
当然,值之间可以有空格、制表符和换行符的任意组合。
答案1
这应该会为您提供您在文件中搜索的所有行:
perl -n -e 'if ($_ =~ m/\W*\w+\W*=\W*\(\W*\w+\W*,\W*\w+\W*,\W*\w+\W*,\W*\w+\W*,\W*\w+\W*\)\W*;/) { print $_; }'
只需通过这个 perl 单行程序解析所有 delphi 源文件即可。
更多解释如下:
\W
=> 表示非单词字符\w
=> 表示字母数字字符,包括下划线+
=> 至少发生一次*
=> 零次或多次出现$_
=> 当前行将由-n
希望这可以帮助。