有一天,我将掌握Regexp,但我再次发现自己陷入了Python模块。当我使用;作为regexp构造时,它只返回;字符,老实说,这有点令人尴尬。
我希望拆分这个数据字符串:
$POSL;VEL;GPS;040.0;0.1;;;*32
;是分隔符,但是获得元素6和7的空匹配(空字符串)是很重要的。
所以,我需要的输出是:
"$POSL""VEL""GPS""040.0""0.1""""""*32"注意:,我知道打电话给split()会更容易。但是,我需要知道标记的字符索引-例如,我知道VEL占用字符6-8。
发布于 2019-11-08 09:17:33
Regex:
([^;]+|(?<=;)(?=;)|^(?=;)|(?<=;)$)
关于投入:
;$POSL;VEL;GPS;040.0;0.1;;;*32;;
给予:
Match 1
1. Empty
Match 2
1. $POSL
Match 3
1. VEL
Match 4
1. GPS
Match 5
1. 040.0
Match 6
1. 0.1
Match 7
1. Empty
Match 8
1. Empty
Match 9
1. *32
Match 10
1. Empty
Match 11
1. Emptyhttps://regex101.com/r/HVrN1M/1
但我认为打电话给split要容易得多。
发布于 2019-11-08 08:36:53
这对我有用。不需要审判。
inp = '$POSL;VEL;GPS;040.0;0.1;;;*32'
print(inp.split(';'))发布于 2019-11-08 08:42:41
Re.split(‘定界符’,字符串) ->第一个参数是要拆分字符串的分隔符,第二个参数是要对其进行此操作的字符串。
它返回字符串列表,因此您可以根据自己的愿望使用。
import re
#String s
s="$POSL;VEL;GPS;040.0;0.1;;;*32"
l=re.split(';',s)
print(l)
#['$POSL', 'VEL', 'GPS', '040.0', '0.1', '', '', '*32']https://stackoverflow.com/questions/58762967
复制相似问题