我将输入作为软件和软件版本(仅举几个例子):
我想要的输出是:
我可以成功地获得其中的5个
re.compile('Oracle \d*.\d*')
问题是'Oracle DB 4.4‘。如何使regex忽略“DB”,只返回“Oracle 4.4”,但对其他输入仍然有效?
发布于 2020-09-03 16:31:30
可以使用两个捕获组,其中DB是可选的
DB
(Oracle )(?:DB )?(\d+(?:\.\d+))
Regex演示 x- Python演示
如果十进制部分不是可选的,则为:
(Oracle )(?:DB )?(\d+\.\d+)
在替换中使用两个捕获组。
result = re.sub(regex, r"\1 \2", test_str)
https://stackoverflow.com/questions/63727934
相似问题