[英]Decoding a regular expression in Perl
我正在嘗試解碼以下 Perl 正則表達式:
$fname =~ /\/([^\/]+)\.txt$/
我們想在這里匹配什么?
這是你如何分解它。
\\/
- 文字字符/
(...)
- 后跟一個將被捕獲到$1
[ ... ]
- 一個字符類
^
- 在字符類中,這意味着取指定集合的反轉\\/
- 文字字符/
+
- 一次或多次\\.
- 文字字符.
txt
- 文字字符串txt
$
- 字符串的結尾因此,換句話說,這是試圖匹配“任何帶有/
后跟一個或多個不是/
字符,后跟.txt
,后跟字符串末尾,並將.txt
之前的部分放入$1
”
\/([^\/]+)\.txt
此正則表達式匹配文件名,因為它存在於路徑中
例子:
\folder\path\file.txt
沒有什么是匹配的。
folder/path/file.txt
file.txt
匹配(並且file
被放置在捕獲組 1 中: $1
)。
/folder/path/file.txt
同樣, file.txt
匹配(並捕獲file
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.