【问题标题】:Matching capitals and underscores between curly brackets匹配大括号之间的大写和下划线
【发布时间】:2017-01-18 00:06:04
【问题描述】:

我正在尝试从以下内容中提取 {THIS_PATTERN} 之类的模式:

.intro-header {
    padding-top: 50px; /* If you're making other pages, make sure there is 50px of padding to make sure the navbar doesn't overlap content! */
    padding-bottom: 50px;
    text-align: center;
    color: #f8f8f8;
    background: url(../img/{BG_IMAGE_0}) no-repeat center center;
    background-size: cover;
}

在这种情况下,它将是{BG_IMAGE_0}

我不知道我的正则表达式出了什么问题:\{[A-Z_]*\}

我在这里有一个 regex101 小提琴: https://regex101.com/r/KF5Sz6/2

【问题讨论】:

  • 你错过了“数字”\{[A-Z_\d]*\}

标签: regex


【解决方案1】:

这应该可行:

\{[A-Z_0-9]*?\}

您似乎没有考虑到“0”。

通过像 *? 那样做,你也让它变得非贪婪,这应该防止其他 { } 的干扰,在同一行,你在未来的项目中是否偶然发现了任何东西。

【讨论】:

  • 你不需要转义括号( { 和 } ),你也可以使用 \w 代替 [A-Z_0-9]
  • 你说得对,我实际上试图让它尽可能靠近 OP 代码,假设可能有其他没有提到的约束,比如只有大写字母、数字和 _。但是{\w+?} 会很好用。
猜你喜欢
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2020-11-03
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多