$string =~ s/(\w+)/\u$1/g;
我无法理解\u$1
在上述命令中正在做什么
请帮帮我。
答案 0 :(得分:1)
如果匹配成功,$n
变量包含匹配上一个正则表达式匹配模式中捕获组的字符串部分。
$string =~ s/(\w+)/\u$1/g;
在上面的示例中,string将替换为capture group,并且字符串的每个第一个单词都将替换为大写\u
。
见:
my $string = 'foo bar';
$string =~ s/(\w+)/\u$1/g;
print $1, "\n";
print $string, "\n";
如果您打印$1
,它将显示捕获组。
输出:
bar
Foo Bar
查看用大写字母更改的所有第一个字符。
有关捕获群组的详细信息,请参阅perlrequick。
答案 1 :(得分:0)
\u
将下一个字符转为大写。因此,它会将捕获的字符串中的第一个字符更改为大写。
例如:
my $string="hello";
$string =~ s/(\w+)/\u$1/;
将为您输出Hello
。如果您希望将所有字符更改为大写,那么您应该尝试
$string =~ s/(\w)/\u$1/g;
中记录了这一点
\ u大写下一个字符(想想vi)
答案 2 :(得分:0)
\u$1
允许大写第一个包机分组模式。 See Here
\ u标题下一个字符
my $string = "stack overflow";
$string =~m/(\w+)/\u$1/g;
# Stack Overflow