正则表达式检测双花括号之间的文本

2024-01-10

使用正则表达式,我想检测开始和结束双大括号之间的文本/字符串,并且它应该检测任何内部大括号以及文本。

例如:

{{detect this {{and this as well}} text}} but text does not ends here so it should {{not detect this}}.

我写了这个正则表达式

\{\{[\s\S]+\}\}

但这会选择整个字符串 FROM{{检测这个.... TO {{检测不到这个}}

注意:我为此使用 python re


Pyparsing 允许您定义递归语法,但有一些针对常见语法的内置帮助器。请参阅下面带注释的代码示例:

from pyparsing import nestedExpr, ungroup, originalTextFor

# use nestedExpr to define a default expression with left-right nesting markers
nestedText = ungroup(nestedExpr('{{','}}'))

sample = """{{detect this {{and this as well}} text}} but text does not ends here so it should {{not detect this}}."""

# note how reporting the results as a list keeps the nesting of {{ }}'s
print nestedText.parseString(sample).asList()
# prints ['detect', 'this', ['and', 'this', 'as', 'well'], 'text']

# if you just want the string itself, wrap with 'originalTextFor'
print originalTextFor(nestedText).parseString(sample)[0]
# prints {{detect this {{and this as well}} text}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式检测双花括号之间的文本 的相关文章

随机推荐

  • 根据一列从表中删除重复行

    我创建了一个包含 4 个表的多个内部联接的表 但结果返回了重复的记录 这是我正在使用的代码 SELECT tblLoadStop LoadID tblCustomer CustomerID tblLoadMaster BillingID t
  • Spinner 项目的自定义布局

    我在警报对话框中有一个微调器 我想减少微调项目之间的填充 因此我实现了以下内容 spinner row xml
  • Javascript 使用 Genie 效果最小化

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我想最小化
  • 地图函数返回的列表在使用一次后消失[重复]

    这个问题在这里已经有答案了 我是Python新手 我正在使用 Python 3 3 2 我很难弄清楚为什么以下代码会给我一个错误 strList 1 2 3 intList map int strList largest max intLi
  • MVC4 - 有没有办法将根路由到“正常”未处理的 html 页面?

    我有一个 MVC4 应用程序 但我主要将它用于 WebAPI 部分 我想要一个 普通的旧 HTML 文件发送回用户 然后将使用 KnockoutJS 或 KendoUI 从 webapi 控制器中提取 JSON 我知道我可以这样做 rout
  • Java 可以用来确定下载的持续时间吗?

    只是问一下 你会如何做这件事 我知道有一些方法可以获取总体百分比来通知用户下载进度 但我不知道如何在一段时间内执行类似的操作 例如 下载完成所需时间 5 分钟 我所知道的就是百分比 写出写入的字节 然后将其除以长度 然后将其转换为百分比 如
  • android 服务 onBind SecurityException

    我不知道为什么但是在一些设备我的服务不允许绑定 java lang RuntimeException Unable to create application mypackage MyApplication java lang Securi
  • Ruby NET::HTTP 在正文之前读取标头(没有 HEAD 请求)?

    我使用 Net HTTP 和 Ruby 来抓取 URL 我不想抓取流音频 例如 http listen2 openstream co 334 http listen2 openstream co 334 事实上我只想抓取Html内容 所以没
  • Apache mod-auth-mysql 与 phpass 加密密码 (Wordpress)

    我需要对 WordPress 主站点之外的某些网页进行密码保护 用户更愿意使用他们在 WordPress 中已有的用户名和密码 显而易见的解决方案似乎是使用 Apace 模块进行基于 Mysql 的身份验证 mod auth mysql 然
  • HTML 输入数字步骤无需验证

    在 HTML 中 您可以添加step属性为数字类型的输入 我想要这个是因为我喜欢它如何通过仅按向上 向下键来简化用户的输入 我发现此属性的另一个功能是 它强制用户停留在该间隔内 HTML 通过验证来实现这一点 您可以手动输入任何值 但它不会
  • jQuery 选择器中的通配符

    我正在尝试使用通配符来获取 id 以 jander 开头的所有元素的 id 我试过 jander jander 但它不起作用 我知道我可以使用元素的类来解决它 但也可以使用通配符 div div div div 要获取所有以 jander
  • achartengine x 轴标签与值相比发生偏移

    我注意到我的时间表的 Xlabel 与 X 不同步 价值观 这些点应该位于标签的正上方 在左侧 可以 但是它向右移动 我不知道如何解决这个问题 我得到什么 http tinypic com r 2uqj905 7 http tinypic
  • Mysql:不允许从函数返回结果集

    我写了一个函数但收到此错误不允许从函数返回结果集 DELIMITER CREATE FUNCTION getTestFunction p ParentID int p ListName nvarchar 50 p Type nvarchar
  • matlab中识别相邻像素

    我们假设 A 是 1 1 1 1 1 1 1 2 2 3 3 3 4 4 2 2 3 3 4 4 2 2 2 3 4 4 4 4 3 3 5 5 5 5 5 5 我需要识别与特定强度值相邻的所有数字 例如 强度 1 3 和 4 与强度值 2
  • 从自定义路径预加载 env 文件

    我试图在节点应用程序启动时预加载 env 文件 我有以下配置 但每当我运行时npm run start dev我收到错误 scripts lint tslint project tsconfig json build tsc prestar
  • 如何调整 Altair 中的比例范围?

    当使用 Altair 绘制一组图时 我无法将所有轴调整到相同的比例 如下所示 class list c CS m c CS s c SC m c SC s t CS m t CS s t SC m t SC s list of plots
  • 限制 ruby​​ 文件流的速率

    我正在开发一个项目 该项目涉及将 Flash 视频文件从多个地理分布的节点上传到 S3 存储桶 每个视频文件约为 2 3mb 我们每十分钟仅发送一个文件 每个节点 但是我们消耗的带宽需要将速率限制在 20k s 因为这些节点将流媒体传输到C
  • linux 查找正则表达式

    我在使用正则表达式时遇到问题find命令 可能我不明白如何在命令行上转义 为什么这些不一样 find regex 1234567890 find regex digit bash Ubuntu 你应该看看 regextype的论证find
  • 如何使第一个网格项目跨度为 100%?

    我有以下桌面版 它创建了 4 个相等的列 全部为 25 footer inner display grid grid template columns repeat 4 1fr div class footer inner div One
  • 正则表达式检测双花括号之间的文本

    使用正则表达式 我想检测开始和结束双大括号之间的文本 字符串 并且它应该检测任何内部大括号以及文本 例如 detect this and this as well text but text does not ends here so it