我已經在腳本下面的表達式我看改寫:$line =~ s/.*[\\\/]//;
有人可以幫我找出這個正則表達式的片斷嗎?
這是什麼對我說的是:
- 匹配任何字符,次任意金額,那場比賽
"\"
或"/"
- 與
"/"
這並沒有真正意義的我,雖然更換了 - 我們爲什麼會匹配"/"
,如果我們強制t會再次用"/"
替換它嗎?
我已經在腳本下面的表達式我看改寫:$line =~ s/.*[\\\/]//;
有人可以幫我找出這個正則表達式的片斷嗎?
這是什麼對我說的是:
"\"
或"/"
"/"
這並沒有真正意義的我,雖然更換了 - 我們爲什麼會匹配"/"
,如果我們強制t會再次用"/"
替換它嗎?
這實際上是不是這樣的表現手法,將s///
結構是在Perl substitution operator和的形式爲:
s/pattern/replacement/[modifiers]
所以:
$line =~ s/.*[\\\/]//
實際上表示匹配任何字符零次或多次後面跟着一個/
或\
並且在那裏替換任何東西。有效地刪除它們。
以 「/」
錯誤更換。 s
的模式是s/regex/replacement/
。這裏,regex
是.*[\\\/]
(即,在最後的/
或\
之前的所有內容),並且「替換爲空。它只是消除了匹配。
這意味着什麼:「匹配斜線前的一些文本,並刪除斜槓和文本。」s/X/Y /「表示用Y替換X,最後兩個斜槓分隔替換組件。當使用這種正則表達式的一個例子是在目錄路徑刪除目錄
提供了一些測試用例 –
Leaning Toothpick Syndrome。考慮'使用File :: Basename'basename';'來代替。 – Zaid