比如说,原始输入是:
... BEGIN 18.2_1894:19.8E,78.0S HBKLKL END ...
我希望切出位于BEGIN
和END
之间的不同部分,忽略BEGIN
之前和END
之后的所有内容,其中...
是BEGIN
和END
之前未指定或更改的字符数量。即忽略除BEGIN
和END
之间的所有内容,并且只对其间的内容进行切片。
我怎样才能获得这些角色?
答案 0 :(得分:1)
您可以使用正则表达式执行此操作:
(.*)
捕获BEGIN
和END
之间的任何字符,零次或多次。然后res.group(1)
引用第一个捕获。
import re
data = "... BEGIN 18.2_1894:19.8E,78.0S HBKLKL END ..."
res = re.search('BEGIN(.*)END', data)
print res.group(1)
print
print "Now, you can also capture specific parts with a regex..."
print
res = re.search('BEGIN ([0-9\.]+)_([0-9]+):([0-9\.A-Z]+),([0-9\.A-Z]+) ([A-Z]+) END', data)
print res.group(1) # 18.2
print res.group(2) # 1894
print res.group(3) # 19.8E
print res.group(4) # 78.0S
print res.group(5) # HBKLKL
print
print "Or if you really want to use substrings...."
print
pos = data.index("BEGIN") + 5;
print data[(pos+3):(pos+9)] # .2_189
答案 1 :(得分:-1)
尝试:
import re
teststr = ".... BEGIN 18.2_1894:19.8E,78.0S HBKLKL END ..."
match = re.search(r'Begin.*End',teststr, re.IGNORECASE)
print(match.group(0))
这包括"开始"和"结束"在输出中。如果你想删除"开始"请告诉我。和"结束"太