Regex 格式属性的正则表达式=值
我需要构建一个正则表达式来匹配这两种类型的行: 1) SBNID=304,MENAME=RV0714,MEID=122,CELLID=4,CELLNAME=LRV0714D 2) MBTS_ACN1_RJ/ETHPORT:机柜号=0,子架号=0,插槽号=7,端口号=0,子板类型=基板 输出必须是: 第一(1)项: SBNID,MENAME,MEID,CELLID,CELLNAME 第二(2)项: 机柜号、子架号、插槽号、端口号、子板类型 我已经试过了:= 适用于第二种情况,但对于第一种情况,它不返回SBNIDRegex 格式属性的正则表达式=值,regex,pcre,Regex,Pcre,我需要构建一个正则表达式来匹配这两种类型的行: 1) SBNID=304,MENAME=RV0714,MEID=122,CELLID=4,CELLNAME=LRV0714D 2) MBTS_ACN1_RJ/ETHPORT:机柜号=0,子架号=0,插槽号=7,端口号=0,子板类型=基板 输出必须是: 第一(1)项: SBNID,MENAME,MEID,CELLID,CELLNAME 第二(2)项: 机柜号、子架号、插槽号、端口号、子板类型 我已经试过了:= 适用于第二种情况,但对于第一种情况,它不
我使用的是pcre(php)regex您可以在第一个字符类中添加一个字符串开头替代项,并通过使用
[^=]
否定字符类来增强捕获组:
(?:^|[:,])([^=]*)=
看。最后,如果可能缺少=
,则可以将其从模式中删除
详细信息
-字符串的开头或(?:^ |[:,])
,或:
(注意它等于,
(?)
-第1组:除([^=]*)
以外的任何0+字符,尽可能多=
-一个=
符号(可以删除)=
如果您实现了所有建议,您可能会得到。您可以在第一个字符类中添加字符串开头替代项,并通过使用
[^=]
否定字符类增强捕获组:
(?:^|[:,])([^=]*)=
请参阅。最后,如果模式中缺少=
,则可能会将其从模式中删除
详细信息
-字符串的开头或(?:^ |[:,])
,或:
(注意它等于,
(?)
-第1组:除([^=]*)
以外的任何0+字符,尽可能多=
-一个=
符号(可以删除)=
如果您实现了所有建议,您可能会得到。
(?:^ |[:,])\s*([^=]*)=
而不在属性上留空格,或者,因为它是PCRE,(?:^ |[:,])\s*\K[^=]+
很抱歉,它不起作用,因为如果我把所有的例子放在一起,它就起作用了,但是在我的代码中,每个输入都是按时间处理的,所以正则表达式没有solve@user3806586请解释您的输入是什么样子的。“按时间处理”是什么意思=在属性上没有前导空格,或者,因为它是PCRE,(?:^ |[:,])\s*\K[^=]+
很抱歉,它不起作用,因为如果我把所有的示例放在一起,它就起作用了,但是在我的代码中,每个输入都是按时间处理的,所以正则表达式没有solve@user3806586请解释你的输入是什么样子的。你说的“按时间处理”是什么意思。