What does this regexp pattern mean?
I'm working with some Action Script file and I found this:
var pattern:RegExp = /.*\//
var results:Array = pattern.exec(cardImageService开发者_C百科.url);
I know it's a regular expression and that exec()
is looking for my pattern in my string. But how should I understand this pattern?
Thanks!
/ - 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
The pattern
.*\/
means
.* # any character (except \n), zero or more times
\/ # the forward slash "/"
The forward slash must be escaped because when written as a regex literal (like in your case), the forward slash is already in use to delimit the regex.
In other cases, when the regex is presented as a string, it would look like ".*/"
and mean the same thing.
Effectively, this matches a path up to (and including) the last forward slash.
/some/very/long/path/with.a.file -------match---------
It matches any number of characters (zero or more), ending with a /
character. Typically, this will grab everything in the string from the beginning until (and including) the last forward slash in the string.
/
is the RegEx delimiter
.*
selects 0 or more characters (as many as possible), excluding newlines
\/
is an escape character followed by /
so that it will match the /
char without ending the regex
/
is the other RegEx delimiter
what this regex will search for is any number of characters followed by a /
char.
.*
means find anything, any number of times (0 to infinite) and \/
means find a slash, the \
is an escape character. In essence, the regex would match pretty much any line that has a / in it.
精彩评论