当前位置: 首页 > 面试题库 >

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

顾承平
2023-03-14
问题内容

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

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


问题答案:

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

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

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

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

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


 类似资料:
  • 好的正则表达式问题,如何提取不在两个字符之间的字符,在本例中为括号。 我有一个字符串,例如:word1 |{word2 | word3}| word 4 我只想得到第一个和最后一个“管道”,而不是括号内的第二个。我尝试了无数次负克拉和负分组的尝试,但似乎无法让它发挥作用。 基本上,我在JavaScript拆分函数中使用这个正则表达式将其拆分为一个数组,其中包含:“word1”、“{word2|wo

  • 问题内容: 我需要解析一个日志文件并获取时间和相关的函数调用字符串,它以如下方式存储在日志文件中:{“ time”:“ 2012-09-24T03:08:50”,“ message”:“ Call( )开始”} 在其他字符串字符之间将有多个记录的时间函数调用,因此我希望使用正则表达式浏览文件并获取所有这些 我想获取包括大括号在内的整个记录​​的信息 我尝试了以下 和 我不断收到非法的重复错误,请帮

  • 问题内容: 我正在寻找一个正则表达式来匹配大括号之间的文本。 我希望将它们分别作为单独的组 。 我试过只删除第一个和最后一个大括号。 问题答案: 您需要围绕要捕获的内容使用捕获组。 只是为了匹配并捕获大括号之间的内容。 输出量 如果要三个特定的匹配组… 输出量

  • 问题内容: 我有这种形式的内容 我需要数组中花括号之间的所有值,如下所示: 我尝试使用以下代码: 但是我从这里的第一个大括号到内容中找到的最后一个大括号都进入了这里。如何获得上述格式的数组?我知道我使用的模式是错误的。为了得到上面所示的期望输出,应该给出什么? 问题答案: 像这样… 输出:

  • 上面的正则表达式返回括号之间的文本。 如: 如何重写上面的正则表达式,所以我提供了一个类似的字符串,它将返回。i、 e带括号的部分,其中包含大括号中的字符串。

  • 问题内容: 我试图编写一个正则表达式,该表达式返回括号之间的字符串。例如:我想获取位于字符串“(”和“)”之间的字符串 会回来 找到正则表达式以获取Javascript中两个字符串之间的字符串,但是我对regex并不陌生。我不知道如何在正则表达式中使用’(’,’)’ 问题答案: 您需要创建一组转义的(带有)括号(与括号匹配)和一组常规的括号来创建捕获组: 分解: :匹配左括号 :开始捕获组 :匹配