回答
\u
將下一個字符變爲大寫。所以它會將您捕獲的字符串中的第一個字符改爲大寫。
因此,例如:
my $string="hello";
$string =~ s/(\w+)/\u$1/;
會給你輸出Hello
。如果你想改變所有字符爲大寫,那麼你應該嘗試
$string =~ s/(\w)/\u$1/g;
這在perlre under Escape sequences
記錄\ u大寫下一個字符(想想vi)
\u$1
允許大寫第一個特許分組模式。 See Here
\ü首字母大寫下一個字符
my $string = "stack overflow";
$string =~m/(\w+)/\u$1/g;
# Stack Overflow
的$n
變量包含在去年的正則表達式匹配的模式匹配的捕獲組如果匹配成功的字符串部分。
$string =~ s/(\w+)/\u$1/g;
在上面的例子中的字符串將與捕獲組和字符串的每個第一字代替將與大寫\u
替換。
看到這個:
my $string = 'foo bar';
$string =~ s/(\w+)/\u$1/g;
print $1, "\n";
print $string, "\n";
如果打印$1
,它會顯示捕獲組。
輸出:
bar
Foo Bar
查看所有第一個字符用大寫改變。
有關捕獲組的更多詳細信息,請參見perlrequick。
非常感謝。如果我將寫入$ 2而不是$ 1,它將打印什麼。你能否詳細說明$ n。 – user3176679
它不會打印任何東西。 __ampuring group_是第一個括號'()'是$ 1,第二個是$ 2等等。請參閱鏈接的文檔。對於更多,你可以看看[perlre](http://perldoc.perl.org/perlre.html#Warning-on-\1-Instead-of-%241)。 – serenesat
- 1. perl的命令行多正則表達式替代
- 2. perl中的正則表達式獲取
- 3. 在Perl的正則表達式來捕捉fork炸彈命令
- 4. 在expr的正則表達式命令
- 5. 正則表達式在Perl
- 6. Perl正則表達式在\
- 7. 正則表達式在Perl
- 8. Perl正則表達式在@
- 9. Perl正則表達式重命名
- 10. 正則表達式在命令行
- 11. 正則表達式中的perl正則表達式
- 12. `w -hs`命令的Perl正則表達式匹配輸出
- 13. Perl的正則表達式腳本和命令行不同
- 14. Ansible:使用grep和perl正則表達式的Shell命令
- 15. Perl命令行打印 - 在命令行測試正則表達式
- 16. Perl的提取與正則表達式
- 17. Perl的正則表達式提取
- 18. 在考慮在Perl正則表達式Perl的正則表達式
- 19. Perl的正則表達式
- 20. Perl的正則表達式
- 21. unix sed命令的正則表達式
- 22. grep命令linux的正則表達式
- 23. Linux命令行的正則表達式
- 24. sed命令:2的正則表達式
- 25. 正則表達式的命令行java
- 26. Perl正則表達式提取
- 27. Perl條件正則表達式提取
- 28. 取代r中的正則表達式
- 29. Perl的正則表達式 - 動態正則表達式
- 30. 正則表達式 - 提取命中
這裏有奇怪的switcharoo'+'vs'/ g'。對於第一種情況(OP),我更喜歡's /(\ w)/ \ u $ 1 /'; 「+」不只是無關的,它可能是浪費。對於「所有字符」的情況,我更喜歡's /(\ w +)/ \ U $ 1/g'(注意'\ U',而不是'\ u');這裏缺少'+'可能會浪費。 :) –