我有一个字符串:
Station Disconnect:1.3.6.1.4.1.11.2.14.11.15.2.75.3.2.0.8 StaMAC:00:9F:0B:00:38:B8 BSSID:00 9F Radioid:2
我要把这根绳子分开。看起来像这样-
'Station Disconnect:1.3.6.1.4.1.11.2.14.11.15.2.75.3.2.0.8' 'StaMAC:00:9F:0B:00:38:B8' 'BSSID:00 9F' 'Radioid:2'
我尝试了这个逻辑-msgRegex=重新编译('[\w\s]+:')和split函数。 我能做什么请帮我谢谢
据我所见,如果在匹配项中有一个带有十六进制值的空格,就有问题了。你知道吗
正因为如此,我相信你不能在这里使用分裂的方法。将您的令牌与regex匹配,如
参见regex demo
Python code:
结果:
注意:如果结果中不需要元组,请从模式中删除捕获括号。你知道吗
图案细节:
(?<!\S)\b
—字符串或空格的开头,后跟单词边界(下一个字符必须是字母/数字或_
)([^:]+)
-捕获群#1:1+除:
以外的字符:
-结肠((?:[a-fA-F0-9]{2}(?:[ :][a-fA-F0-9]{2})*|\S)+)
-捕获组2匹配以下一个或多个事件:[a-fA-F0-9]{2}(?:[ :][a-fA-F0-9]{2})*
-2个十六进制字符,后跟零个或多个空格或:
和2个十六进制字符|
-或\S
-非空白字符\b
-尾随词边界。你知道吗在这种情况下,您可以这样实现:
输出:
正则表达式:
(?<=[A-Z0-9])
-A-Z或0-9的正向后视- 1 space character
(?=[A-Z])
-对A-Z的正面展望相关问题 更多 >
编程相关推荐