Python Regex - 从两个'*'之间的字符串中查找内容

Var*_*hah 2 python regex

我有一个文本文件,我需要从两个'*'之间的文件中提取所有内容.可能会出现多次相同的情况.我怎么用Regex做到这一点?我擅长Python,但我没有使用Regex,所以它是我的弱点.

Jos*_*lis 5

笔记:

  1. 使用文档,它真的很有用!
  2. *通常是0 or more模式搜索,所以你需要用它来逃避它\
  3. .是一个any搜索,将捕获除换行符之外的所有字符!.要包含换行符,请添加re.DOTALL标志
  4. +意思是at least one,它是一个贪婪的运算符,这意味着它通常会捕获第一个和最后一个之间的所有东西(包括它们之间的任何东西),所以为了防止它贪婪,我们添加运算符,告诉它停在它遇到的第一个.***?*
  5. () 只保留括号内的匹配!

这是一个实际的例子:

import re
pattern = re.compile(r'\*(.+?)\*', flags=re.DOTALL)
text = """Why hello *there my fine
fellow!* How for art thou
on *such a glorious day?*"""

results = pattern.findall(text)
# ['there my fine\nfellow!', 'such a glorious day?']
Run Code Online (Sandbox Code Playgroud)