Regex 匹配逗号的perl脚本
我有一个从原理图生成的网络列表。此网络列表包括电源引脚。我正试图编写一个perl脚本来从网络列表中删除电源引脚。 作为这项工作的一部分,我必须搜索与以下模式匹配的字符串:Regex 匹配逗号的perl脚本,regex,perl,Regex,Perl,我有一个从原理图生成的网络列表。此网络列表包括电源引脚。我正试图编写一个perl脚本来从网络列表中删除电源引脚。 作为这项工作的一部分,我必须搜索与以下模式匹配的字符串: ", );" 我使用了以下代码,但它不起作用 $line =~ s/,\s+\);//g 我观察到以逗号结尾的模式是匹配的,但以逗号开头的模式或中间带逗号的模式是不匹配的。 关于如何完成这项工作的任何建议您需要改用它: s/,\s*\);// 您应该具有防御性,能够处理、和)之间的空白。您必须退出)。有关更多信息,请
", );"
我使用了以下代码,但它不起作用
$line =~ s/,\s+\);//g
我观察到以逗号结尾的模式是匹配的,但以逗号开头的模式或中间带逗号的模式是不匹配的。
关于如何完成这项工作的任何建议您需要改用它:
s/,\s*\);//
您应该具有防御性,能够处理
、
和)
之间的空白。您必须退出)
。有关更多信息,请参见《perldoc perlre》。谢谢各位。我发现了问题所在。问题是要识别的模式被分成两条不同的线。下一行中的“,”在一行中紧跟“);”。首先,iam删除新行字符,并假设下一行将附加到当前行,但这不会发生。因此,模式匹配不起作用
要解决这个问题,我必须再次读取文件,然后替换模式。您需要退出
)
模式应该是,\s*\)代码>$line=~s/\,\s*\)\//gs代码>@SSR1102:如果有输入标记,则该/s
的值是什么be@ssr1012我已经试过了,但它对我不起作用。在perl中,逗号不需要转义。谢谢您的建议。但问题不在于匹配空格,而是匹配逗号,当模式以逗号开头时。