gpt4 book ai didi

regex - PHP 正则表达式环顾四周,匹配多次出现

转载 作者:行者123 更新时间:2023-12-04 03:57:08 25 4
gpt4 key购买 nike

我有这样的文字:

const {
b {
description "Create B1"
uri "ms:///a/v1/create-b"
}
c {
description "Create C1"
uri "ms:///a/v1/create-c"
}
d {
description "Create D1"
uri "ms:///a/v1/create-d"
}
}

const {
b {
description "Create B2"
uri "ms:///a/v1/create-b"
}
c {
description "Create C2"
uri "ms:///a/v1/create-c"
}
d {
description "Create D2"
uri "ms:///a/v1/create-d"
}
}

我正在尝试获取 const 之间的所有内容,这是我到目前为止想到的:const {(?s)(.*)}.*?(?=常量)。这只是第一次出现,我无法弄清楚如何获得所有其他的(在原始文件中有更多的 const 对象)。

任何朝着正确方向的插入都将受到欢迎 👍

您可以在此处进行测试的链接:https://regex101.com/r/I4W5cR/1

最佳答案

您可以利用每个匹配项在一行的开头以 const 开头的事实:

(?sm)^const {(.*?)}\s*\R(?=const|\Z)

参见 regex demo

详情

  • (?sm) - s 启用 DOTALL 模式,m 使 ^ 匹配行起始位置
  • ^ - 行首
  • const { - 一个子串
  • (.*?) - 第 1 组:任何零个或多个字符,尽可能少
  • } - } 字符
  • \s*\R - 零个或多个空格,然后是一个换行符
  • (?=const|\Z) - 紧靠右侧,必须有 const 或字符串结尾。

关于regex - PHP 正则表达式环顾四周,匹配多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63682988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com