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

如何编写匹配以$开头、以.或"结尾的正则表达式?

解决方案

要实现同时匹配以.或"结尾的目标,你可以通过两种方式修改正则表达式:

方法1:使用字符集(更简洁)

字符集[."]可直接匹配其中任意一个字符,写法更紧凑:

import re
query1 = "示例$text1. 另一个$text2\" 还有$无结尾的内容"
matches = re.findall(r'\$(.+?)[."]', query1)
print(matches)  # 输出: ['text1', 'text2']
  • \$:匹配开头的$符号(需转义,因为$在正则中是行尾锚点)
  • (.+?):非贪婪捕获$之后到终止符前的内容
  • [."]:匹配结尾的.或"(字符集内的.无需转义)

方法2:使用非捕获组(明确或逻辑)

如果需要更清晰地表达“或”逻辑,可用非捕获组(?:...)包裹两个终止符:

import re
query1 = "示例$text1. 另一个$text2\" 还有$无结尾的内容"
matches = re.findall(r'\$(.+?)(?:\.|\")', query1)
print(matches)  # 输出: ['text1', 'text2']
  • (?:\.|\"):非捕获组,?:表示不捕获该组内容,\.匹配句号,|表示“或”,\"匹配双引号
  • 该写法和字符集效果一致,但逻辑表达更直观

注意点

  • 保留(.+?)的非贪婪模式,避免匹配到距离$更远的终止符(比如防止把$a.b"中的a.b全部捕获)
  • 如果字符串存在嵌套或复杂场景,可根据实际需求调整匹配逻辑,基础场景下以上两种写法均可解决问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:55:24