我想从字符串中获取两个分隔符(正则表达式)之间的子字符串.我想用这个:
while (<>) {
if (/START/../END/) {
next if /START/ || /END/;
print;
}
}
Run Code Online (Sandbox Code Playgroud)
但这适用于stdin的行.我想让它在一个字符串的行上工作.怎么样?
只是:
my ($between) = $string =~ /START(.*?)END/s;
Run Code Online (Sandbox Code Playgroud)
或者,从字符串中读取:
use 5.010;
open my $string_fh, "<", \$string or die "Couldn't open in-memory file: $!";
while ( <$string_fh> ) {
...
Run Code Online (Sandbox Code Playgroud)
如果您的意思是要处理已包含多行的字符串,请使用split:
foreach (split(/\n/, $str)) {
if (/START/../END/) {
next if /START/ || /END/;
print;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6268 次 |
| 最近记录: |