我的代码中有以下类型的行:
MMAPI_CLOCK_OUTPUTS = 1, /*clock outputs system*/
MMAPI_SYSTEM_MANAGEMENT = 0, /*sys man system*/
我想解析它们以获得:
'MMAPI_CLOCK_OUTPUTS'
'1'
'clock outputs system'
所以我尝试了:
elsif($TheLine =~ /\s*(.*)s*=s*(.*),s*\/*(.*)*\//)
但这并没有得到最后一个字符串“时钟输出系统” 解析代码实际上应该是什么?
最佳答案
您应该转义斜杠、星号和空格的 s
。不要在正则表达式中编写 /
、*
或 s
,而是编写 \/
、\*
和 \s
:
/\s*(.*)\s=\s*(.*),\s\/\*(.*)\*\//
关于Perl 解析 - 字符、制表符和空格的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987134/