如何使用正则表达式在 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', '')
- 使用
re.DOTALL
使.
匹配换行符
- 不要转义正斜杠
- 非捕获语法是:
(?:<expr>)
>>> txt = """
/*
name = foo
table = bar
*/ don't capture this
"""
>>> re.findall(r'(?:/\*)(.*?)(?:\*/)', txt, re.DOTALL)
['\nname: foo\ntable: bar\n']
我正在尝试获取 /*
和 */
我正在使用 re
库和以下表达式来获取数据
pattern = re.compile(r'(?<=\/\*)(.|\n)+?(?=\*\/)')
result = pattern.findall(query)
query - 图像中显示的带有数据的字符串(可能包含换行符等)
我的表达式不正确,我得到了这个结果
['\n', '\n', '\n', '\n']
如何获取 /*
和 */
之间的所有内容?
上次我遇到这个问题时,我只是通过从字符串中删除新行来解决它。例如:
query.replace('\n', '')
- 使用
re.DOTALL
使.
匹配换行符 - 不要转义正斜杠
- 非捕获语法是:
(?:<expr>)
>>> txt = """
/*
name = foo
table = bar
*/ don't capture this
"""
>>> re.findall(r'(?:/\*)(.*?)(?:\*/)', txt, re.DOTALL)
['\nname: foo\ntable: bar\n']