一尘不染

JavaScript正则表达式在花括号之间获取字符串

javascript

不幸的是,尽管尽我所能记住,每年尝试至少一年学习一次正则表达式,但我却经常忘记,因为我很少使用它们。今年,我新年的决心是不要再尝试学习正则表达式因此,今年,为了避免让我流泪,我将把它交给Stack Overflow_ 。

我想以这种格式传递一个字符串{getThis},然后返回该字符串getThis。有人能协助我们坚持我的新年决议吗?



阅读 922

收藏
2020-04-25

共1个答案

一尘不染

如果您的字符串将始终是该格式,则正则表达式会显得过大:

>>> var g='{getThis}';
>>> g.substring(1,g.length-1)
"getThis"

substring(1表示以一个字符开头(刚好超过第一个字符{),并,g.length-1)表示以直到(但不包括)字符串长度减去一个字符为止。这是有效的,因为位置是从零开始的,即g.length-1最后一个位置。

对于比原来的海报其他读者:如果
是一个正则表达式,使用/{([^}]*)}/,如果你想允许空字符串,或者/{([^}]+)}/如果你想只匹配时,有花括号之间至少有一个字符。分解:

  • /:启动正则表达式模式
    • {:大括号
    • (:开始捕获
      • [:开始定义要捕获的字符类
      • ^}:“除}”之外的任何东西
      • ]:好的,那是我们全班的定义
      • *:与我们刚定义的类相匹配的任意数量的字符
    • ):完成捕获
    • }:大括号必须立即跟随我们捕获的内容
  • /:结束正则表达式模式
2020-04-25