Python 从正则表达式中提取文本?
我试图在正则表达式中得到一些匹配文本的结果,但它似乎不起作用。有人知道会出什么问题吗Python 从正则表达式中提取文本?,python,regex,Python,Regex,我试图在正则表达式中得到一些匹配文本的结果,但它似乎不起作用。有人知道会出什么问题吗 import re text = "I want to match anything in <angle brackets>" match = re.search("\<(?P<brackets>[^\>]+)>", text) if match: print (match.group('brackets')) 重新导入 text=“我想匹配中的任何内容” 匹
import re
text = "I want to match anything in <angle brackets>"
match = re.search("\<(?P<brackets>[^\>]+)>", text)
if match:
print (match.group('brackets'))
重新导入
text=“我想匹配中的任何内容”
匹配=重新搜索(“\]+)>”,文本)
如果匹配:
打印(匹配.组('括号'))
这不会打印任何内容,即未找到匹配项。这实际上是一个非常常见的错误--当您想使用
re.search
时,您似乎正在使用re.match
re.match
只匹配给定文本开头的内容,而re.search
检查整个内容
import re
text = "I want to match anything in <angle brackets>"
match = re.search("\<(?P<brackets>[^\>]+)>", text)
if match:
print (match.group('brackets'))
虽然@Tom Jacques很好地回答了这个问题,但在我尝试时,问题和答案中显示的代码对我来说都不起作用。以下代码有效:
import re
text = "I want to match anything in <angle brackets>"
match = re.search("\<(?P<brackets>.*)\>",text)
if match:
print (match.group('brackets'))
重新导入
text=“我想匹配中的任何内容”
匹配=重新搜索(“\”,文本)
如果匹配:
打印(匹配.组('括号'))
请注意,正则表达式中将文本[^
替换为*)
,并在调用re.search()
时包含text
参数
(编辑)
此答案解决了一个问题,该问题和另一个答案都已更正。此处建议的对正则表达式的更改将捕获到行中最后一个
之前的所有文本,而问题和另一个答案中更改的正则表达式将仅捕获到第一个>之前的文本代码>它找到的。啊,这就是诀窍,我应该仔细读一读,谢谢!你说得对,我实际上把问题的格式弄错了
import re
text = "I want to match anything in <angle brackets>"
match = re.search("\<(?P<brackets>.*)\>",text)
if match:
print (match.group('brackets'))