如何使用正则表达式在 python 中的两个字符之间进行捕获?

How to capture between two characters in python using regex?

我正在尝试获取 /**/

之间的所有内容

我正在使用 re 库和以下表达式来获取数据

pattern = re.compile(r'(?<=\/\*)(.|\n)+?(?=\*\/)')
result = pattern.findall(query)

query - 图像中显示的带有数据的字符串(可能包含换行符等)

我的表达式不正确,我得到了这个结果

['\n', '\n', '\n', '\n']

如何获取 /**/ 之间的所有内容?

上次我遇到这个问题时,我只是通过从字符串中删除新行来解决它。例如:

query.replace('\n', '')
  1. 使用re.DOTALL使.匹配换行符
  2. 不要转义正斜杠
  3. 非捕获语法是:(?:<expr>)
>>> txt = """
/*
name = foo
table = bar
*/ don't capture this
"""
>>> re.findall(r'(?:/\*)(.*?)(?:\*/)', txt, re.DOTALL)
['\nname: foo\ntable: bar\n']