perl 1234567890123456789 使用while (<DATA>) s/^[0-9]{11,}/'$&/g等指定的语法 输出 ‘1234567890123456789
时间: 2024-01-20 21:02:26 浏览: 82
这段代码的作用是读取 `__DATA__` 标记后的数据,使用 `while` 循环逐行读取数据,并对每一行进行正则表达式替换,并输出替换后的结果。
如果想要输出 `'1234567890123456789`,可以使用正则表达式 `s/^[0-9]{11,}/'$&/g`,将每一行开头的 11 位数字替换为带有单引号的数字,例如:
```
#!/usr/bin/perl
use strict;
use warnings;
while (<DATA>) {
s/^[0-9]{11,}/'$&/g;
print;
}
__DATA__
1234567890123456789
```
运行程序,就会输出 `'1234567890123456789`。
需要注意的是,正则表达式 `s/^[0-9]{11,}/'$&/g` 匹配每一行开头的 11 位或以上数字,并使用 `$&` 表示匹配到的数字,然后将其替换为带有单引号的数字。另外,`g` 修饰符表示进行全局替换。
相关问题
perl 1234567890123456789 while (<DATA>){s/^[0-9]{11,}$/'$&/g;print;}__DATA__ 没有结果
这段代码的作用是读取 `__DATA__` 标记后的数据,对其中的每一行进行正则表达式替换,将以 11 位或以上数字开头并且以数字结尾的字符串前面添加单引号,然后输出替换后的结果。
但是,由于正则表达式 `^[0-9]{11,}$` 匹配的是以 11 位或以上数字开头并且以数字结尾的字符串,而在 `__DATA__` 标记后的数据中并没有符合这个条件的字符串,因此程序没有输出结果。
如果想要让程序输出结果,可以在 `__DATA__` 标记后的数据中添加符合正则表达式条件的字符串,例如:
```
12345678901
123456789012
1234567890123
```
这样运行程序就会输出替换后的结果:
```
'12345678901
'123456789012
'1234567890123
```
perl 1234567890123456789 使用while (<DATA>) s/^//g等指定的语法 输出 ‘1234567890123456789
这段代码的作用是读取 `__DATA__` 标记后的数据,使用 `while` 循环逐行读取数据,并对每一行进行正则表达式替换,并输出替换后的结果。
如果想要输出 `'1234567890123456789`,可以使用正则表达式 `s/^'//g`,将每一行开头的单引号删除,例如:
```
#!/usr/bin/perl
use strict;
use warnings;
while (<DATA>) {
s/^'//g;
print;
}
__DATA__
'1234567890123456789
```
运行程序,就会输出 `'1234567890123456789`。
需要注意的是,正则表达式 `s/^'//g` 匹配每一行开头的单引号,并使用空字符串替换掉它,从而删除开头的单引号。另外,`g` 修饰符表示进行全局替换。
阅读全文