我需要构建一个正则表达式来匹配这两种行: 1) SBNID = 304,MENAME = RV0714,MEID = 122,CELLID = 4,单元名= LRV0714D
2) MBTS_ACN1_RJ / ETHPORT:机柜号= 0,机架号= 0,插槽号= 7,端口号= 0,子板类型= BASE_BOARD
输出必须是: 对于第一个(1): SBNID,MENAME,MEID,CELLID,CELLNAME
对于第二个(2): 机柜号,子架号,插槽号,端口号,配电板类型
我已经尝试过::,=
适用于第二种情况,但对于第一种情况,它不会返回SBNID
我正在使用pcre(php)正则表达式
答案 0 :(得分:0)
您可以为第一个字符类添加字符串替换的开头,并使用[^=]
否定的字符类来增强捕获组:
(?:^|[:,])([^=]*)=
请参阅regex demo。最终,=
可能会从模式中删除,如果它可能丢失了。
<强>详情
(?:^|[:,])
- 字符串开头或:
或,
(注意它等于(?<![^:,])
)([^=]*)
- 第1组:=
以外的任何0 +字符,尽可能多=
- =
符号(可能已删除)如果您实施了所有建议,最终可能会使用(?<![^:,])[^=]+
。