You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python正则表达式匹配regular expression的多分隔符变体?

解决正则匹配多种变体的问题

没问题,我来帮你搞定这个正则匹配需求!你要匹配的是regular和expression之间用**空格、连字符(-)、冒号(:)、或者HTML实体&**分隔的所有变体,直接用带选择分支的正则就能轻松实现。

具体实现代码

import re

target_str = "This is a string to search for a regular expression like regular expression or regular-expression or regular:expression or regular&expression"
# 用非捕获组(?:...)匹配可选分隔符,避免捕获额外的分隔符内容
pattern = r'regular(?: |-|:|&)expression'
matches = re.findall(pattern, target_str)

print(matches)

运行结果

['regular expression', 'regular-expression', 'regular:expression', 'regular&expression']

正则表达式拆解

让我把这个正则的逻辑拆解开给你看:

  • regular:精确匹配字面量字符串"regular"
  • (?: |-|:|&):这是一个非捕获组,里面的|代表“或”的逻辑,用来匹配四种可选分隔符:
    • :空格字符
    • -:连字符
    • ::冒号
    • &:HTML实体形式的&符号
  • expression:精确匹配字面量字符串"expression"

扩展小技巧

如果之后需要支持更多分隔符变体,只需要在非捕获组里继续添加|新分隔符即可。比如要支持下划线分隔的regular_expression,直接把正则改成r'regular(?: |-|:|&|_)expression'就行。

内容的提问来源于stack exchange,提问作者Carigs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:08:43