RegExp-如何检查字符串是否在特定位置包含子字符串



我试着先搜索这个问题,但没有找到我需要的,这里是:

我有一个字符串像:";substring1/substring2.substring3";(例如"library/History.read")

我需要一个正则表达式来检查:

  1. 子字符串1必须是"0";图书馆">
  2. substring2的开头必须有一个标题字母
  3. 子字符串3必须是"0";读取">

我不熟悉正则表达式,目前我写的是:'library/([a-zA-Z])\.(read)',但不正确。请帮帮我,谢谢!

有很多方法可以解决regex问题,从您自己的尝试开始,以下是行之有效的方法!:-)

library/([A-Z][a-zA-Z]+).(read)

你有三个小错误:

  • .是一个匹配除换行符以外的任何字符的字符类。像这样逃离你的..而不是像这样逃离\.;以及
  • 您的第一个捕获组正好匹配一个字母。你错过了量词。使用+分类器匹配一个或多个
  • 正如Peter所指出的,你的第一个大写字母缺少一个字符类

试试这个正则表达式:

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)
})

最新更新