为不Perl程序员,我想,以确保我已经很好地理解一个结构,我要移植到Python,理解一个简单的Perl构建
时使用:
if (s/^([$PChar])(.)/$2/) {
print $1,"\n";
$finished = 0;
}
- $ 1,$ 2等的匹配正则表达式
- S /搜索/与/
取代什么,我真我不确定匹配/替换是在打印$ 1之前完成的吗?并且它是在当前缓冲区(它是$ F,即$ _逐行逐行,在它的空格字符上分割)内“inplace”完成的,也就是改变它(所以如果我理解的很好,([$ PChar])当一个字符串的@开头在上面的表述中被完全删除/丢失时)?
编辑:不,也许它不会丢失,第一个括号部分被捕获,然后打印为$ 1 +新行字符,然后...不,不知道什么变成了$ 2 ...可能是缓冲区更改为秒括号部分? /编辑结束。
还有什么环境或什么是允许在Win平台上进行一些逐步调试的最佳环境?我知道有这个,我不会问这个问题。我不需要学习Perl,只是为了能够阅读和修改这个脚本。
这里是englobing部分:
@F = split;
for($j=0; $j<=$#F; $j++) {
my $suffix="";
$_ = $F[$j];
# separate punctuation and parentheses from words
do {
$finished = 1;
# cut off preceding punctuation
if (s/^([$PChar])(.)/$2/) {
print $1,"\n";
$finished = 0;
}
# cut off trailing punctuation
if (s/(.)([$FChar])$/$1/) {
$suffix = "$2\n$suffix";
$finished = 0;
}
整个脚本tokenize.pl可以看出here而原来tar.bz如果从here
问候
如果你要发布示例代码,不要发布tar.gz文件,将纯文本复制并粘贴到一些在线键盘上,如codepad.org。 – TLP
@TLP,好的谢谢!直到现在我还不知道codepart.org :) – user1340802