存在多个大括号时如何使用正则表达式获取完全匹配的短语
how to take exact matched phrases using regular expression when multiple braces are present
我有这样的短信
1) <img="" id="">data</img>
2) (hi "hello") data (some text)
我只想删除带有大括号和 angular 方括号的文本并提取数据之间的内容。我试过了
re.compile(r"\(.*\)")
re.compile(r"<.*>")
但由于右大括号位于文本末尾,因此在使用 re.sub 时整个文本将被删除。
如何取多个大括号(angular或花括号)
之间的唯一数据
尝试非贪婪正则表达式,即
re.compile(r"\(.*?\)")
re.compile(r"<.*?>")
In [68]: re.sub(r'<(.+?)>', '', '<img="" id="">data</img>')
Out[68]: 'data'
正则表达式解释:
<(.+?)>
In [68]: re.sub(r'\((.+?)\)', '', '(hi "hello") data (some text)')
Out[68]: ' data '
正则表达式解释:
\((.+?)\)
中的 'Watch Out for The Greediness!' 部分
我有这样的短信
1) <img="" id="">data</img>
2) (hi "hello") data (some text)
我只想删除带有大括号和 angular 方括号的文本并提取数据之间的内容。我试过了
re.compile(r"\(.*\)")
re.compile(r"<.*>")
但由于右大括号位于文本末尾,因此在使用 re.sub 时整个文本将被删除。 如何取多个大括号(angular或花括号)
之间的唯一数据尝试非贪婪正则表达式,即
re.compile(r"\(.*?\)")
re.compile(r"<.*?>")
In [68]: re.sub(r'<(.+?)>', '', '<img="" id="">data</img>')
Out[68]: 'data'
正则表达式解释:
<(.+?)>
In [68]: re.sub(r'\((.+?)\)', '', '(hi "hello") data (some text)')
Out[68]: ' data '
正则表达式解释:
\((.+?)\)