当前位置: 首页 > 知识库问答 >
问题:

正则表达式匹配方括号内花括号内的字符串

单于飞鸣
2023-03-14
var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}';

var qm = q.match(/\[(.*?)\]/g);  

console.log(qm);

上面的正则表达式返回括号之间的文本。

如:

 [{data}(other data)]

如何重写上面的正则表达式,所以我提供了一个类似'data'的字符串,它将返回[{data}(其他数据)]。i、 e带括号的部分,其中包含大括号中的字符串。

共有2个答案

羊舌高峰
2023-03-14

使用qm变量,可以迭代匹配并测试第一个大括号之间的字符串,如下所示:

var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}';
var qm = q.match(/\[(.*?)\]/g);

for (let e of qm)
  if (e.match('\{([^\)]+)\}')[1] == "data")
    console.log(e);
郑俊彦
2023-03-14

与花括号内的字符串匹配

\[{data}\(.*?*\)\]

正则表达式演示

var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}';

var qm = (str) => q.match(new RegExp(`\\[{${str}}\\(.*?\\)\\]`, 'g'));

console.log(qm('data'));
 类似资料:
  • 问题内容: 匹配字符串中的’(’的正则表达式是什么? 以下是场景: 我有一串 我想使用正则表达式拆分字符串。为此,我正在使用 但是我收到以下异常。 转义似乎不起作用。 问题答案: 两种选择: 首先,你可以使用转义 回 斜线- 另外,由于它是单个字符,因此您可以将其放入不需要转义的字符类中-

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

  • 所以我有一个像这样的字符串, 所以我想检查“|”字符并忽略它是否在括号中,就像我在示例中显示的那样。 我添加了这个正则表达式,但它并没有捕获我描述的所有场景。 编辑: 如果我有这样的绳子, 大家好,|早上好[姓名|地址]| 然后,我将字符串按字符断开。但我不想在断开字符串时考虑括号内的字符。

  • 本文向大家介绍正则表达式匹配括号外的符号及数据,包括了正则表达式匹配括号外的符号及数据的使用技巧和注意事项,需要的朋友参考一下 正则表达式匹配括号外的符号 [\\?!/\\.,\\s]+(?=[^\\)]*(\\(|$)) 将括号外的?!/.,和空格(连续多个时同时)匹配 如 结果: sdfsdf sdlfksd sdf fsdf&sdf(s:1,g:1) sdfsd sdf sdfl asdf

  • 我正在使用这段代码使用正则表达式拆分字符串 该代码适用于我拥有的几乎所有字符串,但我面临着这两个字符串的问题:和。似乎模式不匹配,我认为是因为特殊字符和。 我的预期结果和。

  • 我试图匹配,使用正则表达式,所有逗号(后跟一个空格):在任何括号或方括号之外,即逗号不应该包含在括号或方括号中。 目标字符串是。在这种情况下,它应该匹配第一个逗号和最后一个逗号(介于和之间,和)。 所以我可以拆分分成,and,不会因此而使括号/括号不平衡。 为此,似乎很难单独使用正则表达式。有没有其他办法解决这个问题? 我使用的正则表达式: 但是这个表达式将匹配另外两个不应该匹配的逗号(第二个和第