正则表达式的测试()方法返回false的有效正则表达式匹配



在https://regex101.com/r/YbRw2h/1中测试模式时,它显示两个匹配项。

var patt = /{panel:bgColor=#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})}(rn|r|n)?(.*?){panel}/gm
var str = `{panel:bgColor=#deebff}nThis is info paneln{panel}fkjfkfwkwfj

{panel:bgColor=#deebff}nThis is info paneln{panel}`

console.log(patt.test(str)) //false

如何修复正则表达式?

您可以使用:

{panel:bgColor=#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})}[^]*?{panel}

  • {panel:bgColor=#Match字面意思
  • (?:切换的非捕获组
    • [A-Fa-f0-9]{6}匹配6次a-f - a (0-9)
    • |
    • [A-Fa-f0-9]{3}匹配数字0-9的a-f - a出现3次
  • )关闭非捕获组
  • }Match字面意思
  • [^]*?匹配任意字符(包括换行符)
  • {panel}逐字匹配

Regex演示

最新更新