我一些動作腳本文件工作,我發現這一點:這個正則表達式模式是什麼意思?
var pattern:RegExp = /.*\//
var results:Array = pattern.exec(cardImageService.url);
我知道這是一個正則表達式和exec()
正在尋找我在我的字符串模式。但我應該如何理解這種模式?
謝謝!
我一些動作腳本文件工作,我發現這一點:這個正則表達式模式是什麼意思?
var pattern:RegExp = /.*\//
var results:Array = pattern.exec(cardImageService.url);
我知道這是一個正則表達式和exec()
正在尋找我在我的字符串模式。但我應該如何理解這種模式?
謝謝!
它匹配任何數量的字符(零個或多個),具有/
字符結尾。通常,這將從字符串的開頭直到(並且包括)最後一個斜槓,從字符串中抓取所有內容。
/
是正則表達式定界符
.*
選擇0個或多個字符(儘可能多的),不含換行符
\/
是轉義字符,接着/
以便它將匹配/
炭而不結束正則表達式
/
是另一個正則表達式的分隔符
這個正則表達式將搜索的是任意數量的字符後跟一個/
char。
.*
表示查找任何東西,任意次數(0到無限)和\/
表示找到斜槓,\
是轉義字符。從本質上來說,正則表達式幾乎可以匹配任何具有「/」的行。
模式
.*\/
意味着
.* # any character (except \n), zero or more times
\/ # the forward slash "/"
當爲文字正則表達式編寫的斜槓一定是因爲轉義(像你的情況),斜槓已在使用劃定正則表達式。
在其他情況下,當正則表達式是作爲一個字符串,它看起來像".*/"
並意味着同樣的事情。
實際上,這相匹配(幷包括)最後一個正斜槓的路徑。
/some/very/long/path/with.a.file -------match---------
/ - Regex delimiter
. - Meta-character to match any character except newline.
* - Quantifier for zero or more
\/ - A literal /. Since/is used as a delimiter, to match a literal/we
need to escape it.
/ - Regex delimiter
的「正則表達式測試儀」說:輸入的字符串不是一個正則表達式! – 2011-03-21 19:46:58
@Robalot - 這可能取決於你的正則表達式引擎,特別是是否分隔符和轉義字符被正確理解。 – 2011-03-21 19:50:45