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

匹配括号之间可能有括号的文本

公孙令秋
2023-03-14

我需要在${}之间匹配文本示例:

${我需要匹配这个文本}

简单正则表达式\$\\{(.?)\\}将正常工作,直到我在文本中放置一些}

文本内的卷括号配对以匹配。

有没有可能通过正则表达式来解决这个问题?

共有2个答案

荆运诚
2023-03-14

添加一个$到ReGex的末尾,并且不要转义它。美元符号意味着它将在最后检查前一个字母或符号。

正则表达式:\${(.?)}$

Java格式:\\${(.?)}$

许茂才
2023-03-14
\$\{((?:\{[^\{\}]*\}|[^\{\}]*)*)\}

如果我们遇到一个开始的括号,我们寻找它的一对,在结束的括号之后,我们照常进行。这不能处理多个级别的嵌套方括号。

这里的主要构建块在[^\{\}]*-任何非括号序列。它可以用括号\{[^\{\}]*\}包围,但可能不是(?:\{[^\{\}]*\}|[^\{\}]*)。这些序列的任何计数都可以存在,因此*位于末尾。

任何级别的嵌套都可能需要递归正则表达式,Java不支持。但任何固定的数量都可以通过仔细扩展这一理念来匹配。

 类似资料:
  • 问题内容: 例如,如果括号/括号在以下情况中匹配: 依此类推,但如果括号/括号不匹配,则应返回false,例如: 等等。你能检查一下这个代码吗?提前致谢。 问题答案: 您的代码在处理’{‘和’}’字符时有些困惑。它应该与如何处理’(’和’)’完全平行。 这段代码经过您的稍微修改后,似乎可以正常使用:

  • 我想在像这样的文本中插入()并将它们放入数组中,但里面可能有一些嵌套的括号。 文本: 应该这样处理: 我怎么能这么做?

  • 我需要解析一个日志文件并获取时间和相关的函数调用字符串,该字符串存储在日志文件中,如下所示:{“time”:“2012-09-24t03:08:50”,“message”:“call()started”} 在其他字符串字符之间会有多个日志时间函数调用,因此我希望使用regex来遍历文件并获取所有这些 我想获取整个记录的信息,包括花括号 我不断得到非法重复错误,请帮助!谢了。

  • 习题3-4 括号匹配检验 假设一个算术表达式中可以包含三种括号:圆括号“(”和“)” 、方圆括号“[”和“]”、和花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。编写判别给定表达式中所含括号是否正确配对出现的算法。若正确配对则输出yes,否则输出no。注意,算术表达式可能没有括号,也可能不合法(不需要判断)。 输入格式: 测试数据有多组,

  • 例3.3.2 括号匹配问题 输入一个由中、小括符组成的字符串。判断其匹配情况,若括号可以成功匹配,则输出yes,否则输出no。 输入格式: 测试数据有多组,处理到文件尾。对于每组测试,输入一个由中、小括符构成的字符串(长度不超过30)。 输出格式: 对于每组测试,若括号可以成功匹配,则输出“yes”,否则输出“no”。引号不必输出。 输入样例: ()[] [()] [(()]] [(]) 输出样例

  • 我正在尝试找到一种方法,使VSCode在我点击括号内的回车键到括号的开头时自动缩进项目,如下所示(类似于这篇文章)。这在Jupyter中运行良好,但我在VSCode中找不到相同的解决方案,也无法在线找到解决方案。有人知道如何通过VSCode中的预设来实现这一点吗?提前致谢。 当前: 渴望的: 编辑 @Shradha 虽然听起来与我正在寻找的内容相似,但您的建议并没有以我正在寻找的方式解决代码问题。