在Delphi源文件中查找枚举的正则expression式?

背景是在Delphi中我有一个复杂的内存问题 。 但是一个理论是5值的枚举可以成为bug的根源。 所以我对你的问题是:

如何写一个正则expression式来search一个枚举值为5的源文件? Delphi中的枚举看起来像这样

myEnum = (value1,value2,value3,value4,value5); 

当然,值之间可以有空格,制表符和换行符的任意组合。

这应该给你在你的文件中search的所有行:

 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的一个class轮parsing你所有的delphi源文件。
更多的解释:

  • \W =>表示非单词字符
  • \w =>表示包含下划线的字母数字字符
  • + =>至less有一个事件
  • * =>零次或多次出现
  • $_ =>其中的当前行将由-n填充

希望这可以帮助。