输入
C1 C2 C3 C4, C1 C2 C3 C4....
必需输出:
QT620.116T.00.01.0109.PX00.101920130742
我的尝试(见here)
QT620.116T.00.01.0109
答案 0 :(得分:1)
在所需的匹配后使用正向前瞻以匹配.PX
:
^.*?(?=\.PX)
^.*?
非贪婪地匹配.PX
((?=\.PX)
)
(?=\.PX)
零宽度正向前瞻,因此不会被计为输出,只能确保之后存在.PX
示例:强>
In [55]: str_ = 'QT620.116T.00.01.0109.PX00.101920130742'
In [56]: re.search(r'^.*?(?=\.PX)', str_).group()
Out[56]: 'QT620.116T.00.01.0109'
答案 1 :(得分:1)
使用较新的regex
模块,您可以使用前瞻来分割:
import regex as re
string = "QT620.116T.00.01.0109.PX00.101920130742"
(interesting, _) = re.split(r'(?V1)(?=\.PX\d+)', string)
print(interesting)
哪个收益
QT620.116T.00.01.0109
通过(?V1)
启用较新的行为。