背景是在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填充 希望这可以帮助。