regex101 +进一步理解+使用OR操作

时间:2015-07-30 01:39:45

标签: regex

使用此正则表达式measInfoId=83888334.*Number(\s=\s|:)K'(?P<vlr_fieldname>\d+)/g

处理此正则表达式here

有人可以解释在regex的匹配1和匹配2下的绿色和红色是什么?

这是我正在处理的数据:

beginTime="2015-07-30T11:00:00+12:00",elementType="MSCServer",userLabel="MSC01HAM",measInfoId=83888334,duration="PT3600S",endTime="2015-07-30T12:00:00+12:00",measObjLdn="MSC01HAM/ALL HLR:MSC01HAM/HLR Number:K'447559498104",c84162779=4,c84162780=4
beginTime="2015-07-30T11:00:00+12:00",elementType="MSCServer",userLabel="MSCKPR",measInfoId=83888334,duration="PT3600S",endTime="2015-07-30T12:00:00+12:00",measObjLdn="MSCKPR/ALL HLR:MSCKPR/HLR Number:HLR Number = K'8613261621",c84162779=1,c84162780=1

K'之前有一点点差异,我正在努力做到&#39; |&#39;操作(\s=\s|:)来捕捉这个。我做得对吗?

1 个答案:

答案 0 :(得分:1)

1.  [206-207]   `:` --> Green color
vlr_fieldname   [209-221]   `447559498104`  --> Red color

以绿色显示的匹配是由第一组捕获的字符,其中红色表示由第二个命名捕获组捕获的字符。

regex101添加了这种颜色来区分捕获组。

(\s=\s|:)K'(?P<vlr_fieldname>\d+)

(\s=\s|:)这将捕获一个空格=以及跟随等于的空格并匹配以下k',因为k'未包含在捕获组中。因此匹配仅发生在k'上,因此k'为蓝色。

(?P<vlr_fieldname>\d+)称为命名捕获组,它捕获k'后面的一个或多个数字,我们可以通过指定组索引\2或组名{{1}来引用这些字符}。