首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从regex结果中删除不必要的字符?

如何从regex结果中删除不必要的字符?
EN

Stack Overflow用户
提问于 2020-09-03 16:28:32
回答 1查看 34关注 0票数 2

我将输入作为软件和软件版本(仅举几个例子):

  • Oracle 1.1数据库
  • Oracle 2.2
  • Oracle 3.3平台
  • Oracle DB 4.4
  • 甲骨文50.50

我想要的输出是:

  • Oracle 1.1
  • Oracle 2.2
  • Oracle 3.3
  • Oracle 4.4
  • 甲骨文50.50

我可以成功地获得其中的5个

代码语言:javascript
复制
re.compile('Oracle \d*.\d*')

问题是'Oracle DB 4.4‘。如何使regex忽略“DB”,只返回“Oracle 4.4”,但对其他输入仍然有效?

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 16:31:30

可以使用两个捕获组,其中DB是可选的

代码语言:javascript
复制
(Oracle )(?:DB )?(\d+(?:\.\d+))

Regex演示 x- Python演示

如果十进制部分不是可选的,则为:

代码语言:javascript
复制
(Oracle )(?:DB )?(\d+\.\d+)

在替换中使用两个捕获组。

代码语言:javascript
复制
result = re.sub(regex, r"\1 \2", test_str)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63727934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档