我正在努力尝试在文本文件中的一组行中捕获多个匹配项。
数据采用了一堆形式 AO22_X1N_A9PP96CTS_C24 SYN_INC_187(.A0(test_so6),. A1(…
如果我理解你正确你正在寻找这样的东西:
while ($data =~ /(\w+)\s*\((.+?)\)\s*;/gm) { my $line = $1; my $vals = $2; while ($vals =~ /\.(\w+)\s*\(\s*(\w+)\s*\)/g) { print "$line .. $1: $2.\n" } }
我打电话给变量 $data 因为它有所有线 - 对吗? 我首先拆分线,捕获之间的字符串 ( .. ) ,然后拔出键 - 值对。看起来所有的名字都是字母数字+“_”,这是很好的捕获 \w 。
$data
( .. )
\w
希望这可以帮助?