regex - 将两个正则表达式与逻辑“and”运算符组合
问题描述
我正在尝试构建一个组合正则表达式,但我不知道如何组合两个子表达式
- 我有一个这样的输入字符串:4711_001.doc
- 在想要匹配以下内容:4711.doc
- 我可以用这个表达式匹配 4711:
[^\_\.]*
- 我可以将 .prt 与此表达式匹配:
\.[^.]+
是否有某种逻辑 AND 来组合这两个表达式并匹配 4711.doc?表情会是什么样子?
解决方案
您可以使用组在一个正则表达式中执行此操作。查看此代码以供参考:
import re
s = "4711_001.doc"
match = re.search(r"(.+?)_\d+(\..+)", s)
print(match.group(1) + match.group(2))
输出:
4711.doc
推荐阅读
- matlab - 在不使用 min/max 命令的情况下查找矩阵的坐标最小值和最大值
- reactjs - 如何使用 React Router v4 处理重定向到同一路由(使用查询参数)
- html - 为什么最后一段没有在下面的 HTML 代码中着色?
- node.js - Typescript:通过装饰器工厂上的 TypedPropertyDescriptor 限制装饰器
- python - __VIEWSTATE、__EVENTVALIDATION、__EVENTTARGET 和 scrapy & splash 的问题
- html - Cant 样式 ul 列表(bootstrap 4,wordpress 主题)
- cassandra - 多节点数据中心的重启顺序
- javascript - 如何在 JSON 变量永久 JavaScript 数组中进行更改(例如分配新的键和值)?
- c# - AWS(亚马逊网络服务)和微软服务器之间的时间差 1 秒
- python - 在 tkinter 中更新文本框小部件