I tried to search this question first but didn't found what I need, here is it:
I have a string like: "substring1/substring2.substring3" (e.g. "library/History.read")
I need a regular expression to check:
- the substring1 must be "library"
- the substring2 must have a captial letter at the beginning
- the substring3 must be "read"
I'm not familiar with regular expression, the current I wrote is:
'library/([a-zA-Z])\\.(read)'
but it is not correct. Please help me, thanks!
I tried to search this question first but didn't found what I need, here is it:
I have a string like: "substring1/substring2.substring3" (e.g. "library/History.read")
I need a regular expression to check:
- the substring1 must be "library"
- the substring2 must have a captial letter at the beginning
- the substring3 must be "read"
I'm not familiar with regular expression, the current I wrote is:
'library/([a-zA-Z])\\.(read)'
but it is not correct. Please help me, thanks!
2 Answers
Reset to default 3There are many ways to solve regex problems, starting from your own attempt here's something that works! :-)
library/([A-Z][a-zA-Z]+)\.(read)
You had three small mistakes:
.
is a character class matching any character except newline. Escape your.
like this\.
not like this\\.
; and- Your first capture group was matching exactly one letter. You missed the quantifier. Use the
+
qunatifier to match one or more. - As pointed out by Peter, you were missing a character class for your first capital letter
Try this regex:
testStrings = ["library/History.read", "library/other.read", "library/Geography.read", "library/History.unread", "ebook/hstory.read", "library/StackOverflow.read"]
regex = /library\/[A-Z][^\.]*\.read/
testStrings.forEach(testString => {
console.log(regex.test(testString) + " - " + testString)
})
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744167824a4561390.html
评论列表(0条)