我有以下字符串./test
,我想用test
所以來取代它,我寫在Perl如下:然而 my $t =~ s/^.//;
,與/test
取代./test
任何人都可以請建議我該如何解決所以我也擺脫了/
。謝謝!替換字符串
Q
替換字符串
0
A
回答
6
my $t =~ s/^\.\///;
您需要轉義點和斜線。
替換爲s/match/replace/
。如果你擦除,它是s/match//
。你想匹配「以點和斜線開始」,這就是^\.\/
。
2
你必須在點和正斜線之前使用反斜槓:s /\.////; 反斜槓用於寫符號,否則在正則表達式中會有不同的含義。
2
您需要編寫my $t =~ s/^\.\///;
(請注意,爲了匹配文字週期而不是任何字符,需要跳過該週期)。如果這太多斜槓,您也可以更改分隔符,而不是寫入,例如my $t =~ s:^\./::;
。
4
點不符合你的期望 - 而不是匹配一個點字符,它匹配任何字符,因爲它的特殊處理。要匹配點和斜槓,你可以重寫你的表達如下:
my $t =~ s|^\./||;
請注意,您可以自由使用不同的字符作爲分隔符,爲了不與裏面的任何這樣的字符混淆正則表達式。
2
$t=q(./test);$t=~s{^\./}{};print $t;
如果您希望它匹配點,則需要轉義點。否則它匹配任何字符。你可以選擇其他的分隔符---最好是在處理正斜槓時,以免你得到傾斜的牙籤外觀,否則你也需要避開這些分隔符。
2
請注意,您問題中的點符合任何字符,而不是文字'。'。
my $t = './test';
$t =~ s{\./}{};
4
如果你想擺脫./
那麼你需要包括在正則表達式的字符。
s/^\.\///;
兩個.
和/
在這個表達式中的特殊含義(.
是一個正則表達式元字符的意思是「任何字符」和/
是爲s///
運營商的分隔符),所以我們需要投入\
逃脫他們兩個他們面前。
/
問題的替代方法(在我看來更好)方法是更改您使用的字符作爲s///
分隔符。
s|^\./||;
這全部記錄在perldoc perlop。
2
use Path::Class qw(file);
say file("./test")->cleanup();
相關問題
- 1. 替換字符串字符
- 2. 增強字符串替換不會替換換行字符串
- 3. 替換字符串
- 4. 替換字符串
- 5. 字符串替換
- 6. 替換字符串
- 7. 替換字符串
- 8. 替換字符串
- 9. 替換字符串
- 10. 替換字符串[]
- 11. 替換字符串
- 12. 替換字符串
- 13. 替換字符串
- 14. 替換字符串
- 15. 字符串替換交替
- 16. 替換字符串內的字符串
- 17. 字符串替換與字符串
- 18. 將字符串替換爲字符串
- 19. 字符串替換多個字符串
- 20. 用字符串替換字符串java
- 21. 字符串中的字符串替換
- 22. - 替換不替換字符串「()」
- 23. 替換字符串替換的Java
- 24. 字符串替換()/正則表達式替換 - 替換字符串數組中的字符串?
- 25. 用換行符替換字符串PHPStorm
- 26. 字符串替換換行符
- 27. 替換格式字符串
- 28. javascript字符串替換
- 29. PostgreSQL字符串替換
- 30. 獲取字符串替換