格式为property = value的正则表达式

时间:2017-10-23 13:59:32

标签: regex pcre

我需要构建一个正则表达式来匹配这两种行: 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)正则表达式

1 个答案:

答案 0 :(得分:0)

您可以为第一个字符类添加字符串替换的开头,并使用[^=]否定的字符类来增强捕获组:

(?:^|[:,])([^=]*)=

请参阅regex demo。最终,=可能会从模式中删除,如果它可能丢失了。

<强>详情

  • (?:^|[:,]) - 字符串开头或:,(注意它等于(?<![^:,])
  • ([^=]*) - 第1组:=以外的任何0 +字符,尽可能多
  • = - =符号(可能已删除)

如果您实施了所有建议,最终可能会使用(?<![^:,])[^=]+