regex - 什么正则表达式在 2 个模式行之间产生结果?
问题描述
简要地
我正在尝试设置 Sublime Text 4 来隐藏代码中的区域。为此,我使用了 AutoFold 扩展,它可以根据指定的正则表达式折叠代码片段。我需要一个正则表达式,它将提供两行之间的内容,其中第一行包含#region
,最后一行包含#endregion
.
更接近主题:
有一段代码:
-- #region NAME 1
line 1
line 2
-- #endregion
line 3
-- #region NAME 2
line 4
line 5
-- #endregion
我想得到如图所示的结果
为了演示,我使用了 2 个正则表达式
(?<=-- #region NAME 1)(.|\n)*?(?=-- #endregion)
和
(?<=-- #region NAME 2)(.|\n)*?(?=-- #endregion)
.
问题
正则表达式应该是什么样子会给出相同的结果?
我是如何尝试的:
(?<=-- #region )(.|\n)*?(?=-- #endregion)
给出了类似的结果,但它隐藏了不适合我的区域名称(?<=\n)[^$]+
删除第一行之前的行首\n
。看起来与第 1 步一起可以解决我的问题,但我无法将它放在一个表达式中,我尝试过这样的事情:(?<=-- #region )((?<=\n)[^$]+)(?=-- #endregion)
^.*#region.*\n
给出了包含区域和名称的完整行,但也无法使用第 1 项进行组合尝试这样的事情:(?<=(^.*#region.*\n))(.|\n)*?(?=-- #endregion)
解决方案
推荐阅读
- angular - 当我使用路由器插座时,如何在子路由中从父路由中创建空组件
- docker - 获取相关 ID 为 74 的元数据时出错:{topicC=LEADER_NOT_AVAILABLE}
- c# - 如何在 .NET Core 中将 linq 表达式转换为 Azure 表筛选字符串?
- c# - C# datetimepicker 如果等于今天然后勾选复选框,否则不选中/取消选中
- excel - Excel中的=FREQUENCY()函数没有输出我期望的结果
- arrays - 合并节点中的对象
- ruby - 使用 Liquid 计算数组中的项目
- python - Jenkins API Response 没有使用 Crumb
- select - 用于选择单个表行的 4 列的 GET_ENTITY 查询
- database - 如何从 laravel 表中获取一些特定的列名。(并非所有列名)