gpt4 book ai didi

regex - Python 正则表达式匹配多行

转载 作者:行者123 更新时间:2023-12-05 01:00:25 24 4
gpt4 key购买 nike

我正在尝试跨多行匹配正则表达式模式。模式以子字符串开头和结尾,两者都必须位于行首。我可以跨行匹配,但我似乎无法指定结束模式也必须位于行首。

示例字符串:

Example=N      ; Comment Line One error=

; Comment Line Two.

Desired=

我正在尝试从 Example=Desired= 进行匹配。如果 error= 不在字符串中,这将起作用。但是,当它存在时,我匹配 Example=N ;注释第一行错误=

config_value = 'Example'
pattern = '^{}=(.*?)([A-Za-z]=)'.format(config_value)
match = re.search(pattern, string, re.M | re.DOTALL)

我也试过了:

config_value = 'Example'
pattern = '^{}=(.*?)(^[A-Za-z]=)'.format(config_value)
match = re.search(pattern, string, re.M | re.DOTALL)

最佳答案

你可以使用

config_value = 'Example'
pattern=r'(?sm)^{}=(.*?)(?=[\r\n]+\w+=|\Z)'.format(config_value)
match = re.search(pattern, s)
if match:
print(match.group(1))

Python demo .

模式详情

  • (?sm) - re.DOTALLre.M 开启
  • ^ - 行首
  • Example= - 一个子字符串
  • (.*?) - 第 1 组:任何 0+ 个字符,尽可能少
  • (?=[\r\n]+\w+=|\Z) - 需要存在 1+ 个 CR 或 LF 符号后跟 1 个或多个单词字符的正向前瞻带有 = 符号或字符串结尾 (\Z)。

regex demo .

关于regex - Python 正则表达式匹配多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com