匹配 Python 正则表达式子表达式中的任何字符(包括换行符),而不是全局的

2025-03-13 09:06:00
admin
原创
76
摘要:问题描述:我想使用re.MULTILINE但不是 re.DOTALL,这样我就可以有一个包含“任何字符”通配符和.不匹配换行符的普通通配符的正则表达式。有办法吗?在我想要包含换行符的情况下,我应该使用什么来匹配任何字符?解决方案 1:要匹配换行符或不带re.S/的“任何符号” re.DOTALL,您可以使用以...

问题描述:

我想使用re.MULTILINE不是 re.DOTALL,这样我就可以有一个包含“任何字符”通配符和.不匹配换行符的普通通配符的正则表达式。

有办法吗?在我想要包含换行符的情况下,我应该使用什么来匹配任何字符?


解决方案 1:

要匹配换行符或不带re.S/的“任何符号” re.DOTALL,您可以使用以下任一项:

  1. (?s).-带有标志的内联修饰符组s设置了一个范围,其中所有.模式都匹配任何字符,包括换行符

  2. 以下任一解决方法:

[sS]
[wW]
[dD]

主要思想是字符类内的相反简写类与输入字符串中的任何符号匹配。

与其他带有交替的变体相比(.|s),字符类解决方案效率更高,因为它涉及的回溯更少(与*+量词一起使用时)。比较一下小例子:它需要`(?:.|
)+45 步才能完成,而它只需要[sS]+`2 步。

查看Python 演示,其中我匹配从 开始123直到3行首第一次出现的 的一行,并包括该行的其余部分:

import re
text = """abc
123
def
356
more text..."""
print( re.findall(r"^123(?s:.*?)^3.*", text, re.M) )
# => ['123
def
356']
print( re.findall(r"^123[wW]*?^3.*", text, re.M) )
# => ['123
def
356']

解决方案 2:

匹配任意字符(包括换行符):

正则表达式:(请注意,也使用了空格‘ ’)

[S
     ]

例子:

import re

text = 'abc def ###A quick brown fox.
It jumps over the lazy dog### ghi jkl'
# We want to extract "A quick brown fox.
It jumps over the lazy dog"
matches = re.findall('###[S
 ]+###', text)
print(matches[0])

'matches[0]' 将包含:

“一只敏捷的棕色狐狸。\n它跳过了那只懒狗”

'\S' Python 文档的描述:

S
匹配任何非空格字符的字符。

(参见:https://docs.python.org/3/library/re.html#regular-expression-syntax

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   4027  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2755  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   86  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   99  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   87  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用