使用此正则表达式measInfoId=83888334.*Number(\s=\s|:)K'(?P<vlr_fieldname>\d+)/g
有人可以解释在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|:)
来捕捉这个。我做得对吗?
答案 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}来引用这些字符}。