gpt4 book ai didi

Python Regex Bullet Point 和多行匹配

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:04 27 4
gpt4 key购买 nike

想要匹配两个单词或短语之间的东西,其中有一个项目符号点,在 python 中位于多行并且适用于单词在开头和结尾之间的每个变体。不知道用于项目符号点的标识符或用于匹配包括换行符在内的所有内容的标识符。例如试图匹配:

Hello • World Hello • World Hello • World Hello • World Hello • World Hello • World 

 hello_big_old_world = "qweqrqr  Hello • World Hello • World Hello • World Hello • World Hello • World Hello • World fdsfdas"

此字符串跨越多行。我知道它可能不在球场上,但这是我目前所拥有的,显然它没有用。

Answer = re.findall("(?<=qweqrqr)(.*\n?)/s(?=fdsfdas)"), hello_big_old_world)
print(Answer)

提前致谢。

最佳答案

您可以使用至少 1 个项目符号匹配从 qweqrqrfdsfdas 的字符串

hello_big_old_world = "qweqrqr  Hello • World Hello • World Hello • World Hello • World Hello • World Hello • World fdsfdas"
print(re.findall(r'qweqrqr([^\u2022]*\u2022.*?)fdsfdas', hello_big_old_world, re.S))

参见 Python 3 demo .

请注意,您可以使用 而不是 Unicode 字符表示,如果您添加 \s* (=0+ 空白字符) 在括号组的两端:

re.findall(r'qweqrqr\s*([^•]*•.*?)\s*fdsfdas', hello_big_old_world, re.S)

应该work in both Python 3和 Python 2。

详情

  • qweqrqr - 匹配正确的分隔符
  • ([^\u2022]*\u2022.*?)/([^•]*•.*?) - 捕获到第 1 组(字符串返回 re.findall)
    • [^\u2022]*/[^•]* - 除要点外的任何字符
    • \u2022/ - 要点
    • .*? - 任何 0+ 个字符(包括由于 re.S (=re.DOTALL) 标志而产生的换行符)尽可能少(由于惰性量词 *?)
  • fdsfdas - 匹配左分隔符

关于Python Regex Bullet Point 和多行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252653/

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