gpt4 book ai didi

php - 带有捕获组的正则表达式

转载 作者:行者123 更新时间:2023-12-04 10:56:11 24 4
gpt4 key购买 nike

我试图将一些模式与正则表达式匹配,并且还能够捕获子模式(完整模式必须有效,子模式应该被提取。

我的一些模式是:

20170408143311101_rdds.22;the-context=+39-20170408143311101@127.0.0.1-SET_PARAMETER.xml

20170408143311101_rdds.22;the-context=+39-20170408143311101@127.0.0.1.xml

20170408143311101_rdds.22;the-context=+39-20170408143311101@127.0.0.1-SET_PARAMETER

20170408143311101_rdds.22;the-context=+39-20170408143311101@127.0.0.1

20190502085933954_tel.111;the-tag=+39-20190502085933212@127.12.13.14-TEARDOWN.xml

20190502085933954_tel.111;the-tag=+39-20190502085933212@127.12.13.14-TEARDOWN

20190502085933954_tel.111;the-tag=+39-20190502085933212@127.12.13.14

20190502085933954_tel.111;the-tag=+39-20190502085933212@127.12.13.14.xml

20190502085928958_tel.0222;the-context=myco.local-20190502085928958@127.0.0.1-SET_VARIABLE.xml

20190502085928958_tel.0222;the-context=myco.local-20190502085928958@127.0.0.1-SET_VARIABLE

20190502085928958_tel.0222;the-context=myco.local-20190502085928958@127.0.0.1

20190502085928958_tel.0222;the-context=myco.local-20190502085928958@127.0.0.1.xml



子模式突出显示为:
日期 : 胆大
类型:普通
属性 : 加粗斜体
ext: 斜体

笔记:
“_”、“-”和“.”用作子分隔符的字符不应包含在捕获组中。

前任:
的子模式
20170408143311101_rdds.22;the-context=+39-20170408143311101@127.0.0.1-SET_PARAMETER.xml  

是:
date = 20170408143311101
type = rdds.22;the-context=+39-20170408143311101@127.0.0.1
attribute = SET_PARAMETER
ext = xml

现在我试过
^(?<date>\d{17})_(?<type>.*)-?(?<attribute>\w*)?\.?(?<ext>\w{3})?$
^(?<date>\d{17})_(?<type>.*)(-(?<attribute>\w*))?(\.(?<ext>\w{3}))?$

但在“类型”捕获组内折叠类型属性和扩展

什么时候
^(?<date>\d{17})_(?<type>.*)-(?<attribute>\w*)\.(?<ext>\w{3})$

不考虑选项

我如何改进表达式以在其捕获组中采用每个模式(如果存在)

我真的卡住了!

最佳答案

试试那个。我没有检查所有数据。

^(?<date>\d{17})_(?<type>.+?)(?:-(?<attribute>\w*))?(?:\.(?<ext>\w{3}))?$

关于php - 带有捕获组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59175419/

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