Regex 这行Perl没有意义吗?s/^(\d+;)\b/$1/sg
这一行Perl真的起作用了吗Regex 这行Perl没有意义吗?s/^(\d+;)\b/$1/sg,regex,perl,Regex,Perl,这一行Perl真的起作用了吗 $variable =~ s/^(\d+)\b/$1/sg; 我能想到的唯一一件事是,$1或$&可能会被重复使用,但紧接着是 $variable =~ s/\D//sg; 把这两行放在一起,第一行是没有意义和可移动的吗?看起来是这样,但我在这个老节目中已经看过多次了,我想确定一下 $variable =~ s/^(\d+)\b/$1/sg; 开头的锚点^使/g修饰符无效 字符串中缺少通配符,使得/s修饰符无效,因为它可以使也与换行符匹配 由于\b和^是零宽度
$variable =~ s/^(\d+)\b/$1/sg;
我能想到的唯一一件事是,$1
或$&
可能会被重复使用,但紧接着是
$variable =~ s/\D//sg;
把这两行放在一起,第一行是没有意义和可移动的吗?看起来是这样,但我在这个老节目中已经看过多次了,我想确定一下
$variable =~ s/^(\d+)\b/$1/sg;
- 开头的锚点
使^
修饰符无效/g
- 字符串中缺少通配符
,使得
修饰符无效,因为它可以使/s
也与换行符匹配 - 由于
和\b
是零宽度断言,并且是捕获组之外的唯一内容,因此此替换根本不会更改变量^
$1
,如果找到它们的话
随后的正则表达式
$variable =~ s/\D//sg;
将删除所有非数字,使变量仅为一个长数字。如果要分离第一部分(由第一个正则表达式匹配),唯一的方法是从第一个正则表达式访问$1
但是,在这种情况下,最好简单地编写第一个正则表达式:
$variable =~ /^(\d+)\b/;
如果应该使用捕获:
my ($num) = $variable =~ /^(\d+)\b/;
“污染模式”正在使用吗?(使用-T选项调用脚本。)
可能是用来清理(即,清除)用户输入。不,没有使用,但非常有趣!我从来不知道这件事。