将;用作语句分隔符,所以将多个;在声明的结尾是罚款,它只是增加了空语句.
我遇到了这个代码,最后有多个;但删除它们会导致错误:
$line =~s;[.,]$;;;
Run Code Online (Sandbox Code Playgroud)
应该是一样的
$line =~s;[.,;]$;
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.这是怎么回事?
Fil*_*efp 13
在您提供的代码段中,a ;用作search-n-replace正则表达式的分隔符.
$line =~s;[.,]$;;;
Run Code Online (Sandbox Code Playgroud)
相当于
$line =~ s/[.,]$//;
Run Code Online (Sandbox Code Playgroud)
在您的代码中,只有最后一个;是语句分隔符.其他的是替换运算符所采用的正则表达式分隔符.写这个的更好方法是:
$line =~s/[.,]$//;
Run Code Online (Sandbox Code Playgroud)
由于您的语句中必须包含语句分隔符和正则表达式分隔符,因此不能删除任何尾随 ;
| 归档时间: |
|
| 查看次数: |
3180 次 |
| 最近记录: |