python - 我可以添加带有可选字符列表的非捕获组吗?
问题描述
我需要匹配具有或的字符串a-z
,例如:\?
\*
abcd
abc\?d # mush have a \ in front of a ?
abc\*d
ab\?c\*d
并排除其他标点前面没有\
的字符串,例如
abc?d
abc*d
ab?c*d
我试过[a-z(?:\\\?)(?:\\\*)]+
(https://regex101.com/r/5yYBDl/1),但它不起作用,因为[]
我猜只支持字符。
任何帮助,将不胜感激。
解决方案
您可以将此正则表达式与交替和锚点一起使用:
^(?:[a-z]|\\[*?])+$
正则表达式详细信息:
^
: 开始(?:[a-z]|\\[*?])+
: 非捕获组以匹配[a-z]
or\?
或\*
. 匹配 1 个或多个此非捕获组。$
: 结尾
推荐阅读
- r - R plot_ly() 将垂直线添加到时间数据
- javascript - 当子div触及父div边界时如何移动父div
- javascript - 如何在路由更改时隐藏反应组件?
- redis - 将 SQL 数据(带 OR 关系)转换为 redis 数据结构
- java - spring data neo4j(LinkedList)中的当前/先前节点关系
- android - NoSuchMethodError:在 null 上调用了 getter 'avatar'
- rabbitmq - rabbitmq TCP 连接成功但 Erlang 分发失败
- asp.net-core-mvc - 将自定义字段添加到身份会导致错误无法在尝试激活 Loginmodel 时解析 IdentityUser 类型的服务
- sql - 如何添加计数以对 SQL Hive 中的空值进行排名?
- tensorflow - 关于在 Cleverhans 中实现的 ElasticNet 算法的问题