Can';t让re.search()在Python中工作
我有一个“动物猫狗”类型的字符串,我试图从中提取动物 接下来,我尝试使用re.search(稍后也使用re.match),但是没有产生我预期的结果。if语句将通过,但groups()将为空 我的代码是:Can';t让re.search()在Python中工作,python,regex,string-parsing,Python,Regex,String Parsing,我有一个“动物猫狗”类型的字符串,我试图从中提取动物 接下来,我尝试使用re.search(稍后也使用re.match),但是没有产生我预期的结果。if语句将通过,但groups()将为空 我的代码是: string = "fox cat dog" regex = "\S+ cat dog\s*" m = re.search(regex, string) if m: temp = m.group(1) 我尝试打印出m和m.groups()
string = "fox cat dog"
regex = "\S+ cat dog\s*"
m = re.search(regex, string)
if m:
temp = m.group(1)
我尝试打印出m和m.groups(),它们的值如下:
m: <_sre.SRE_Match object at 0x000000002009A920>
m.groups(): ()
m:
m、 组():()
我通过使用子字符串和.find()找到了解决问题的方法,但我很好奇我的原始代码到底出了什么问题
任何帮助都将不胜感激。谢谢大家! 您只需在所需的组中添加一个括号即可。像这样:
string = "fox cat dog"
regex = "(\S+) cat dog\s*"
# ~~~~~~Note the parenthesis there
m = re.search(regex, string)
if m:
temp = m.group(1)
您可能需要查看以了解更多信息:
(…)匹配括号内的任何正则表达式,
并指示组的开始和结束;组的内容
可以在执行匹配后检索,并且可以进行匹配
后面的字符串中带有\number特殊序列,如下所述
在下面要匹配文本“(”或“)”,请使用\(
或\)
,或将它们括起来
在字符类内:[(][)]
您只需要在所需的组中添加一个括号。像这样:
string = "fox cat dog"
regex = "(\S+) cat dog\s*"
# ~~~~~~Note the parenthesis there
m = re.search(regex, string)
if m:
temp = m.group(1)
您可能需要查看以了解更多信息:
(…)匹配括号内的任何正则表达式,
并指示组的开始和结束;组的内容
可以在执行匹配后检索,并且可以进行匹配
后面的字符串中带有\number特殊序列,如下所述
在下面要匹配文本“(”或“)”,请使用\(
或\)
,或将它们括起来
在字符类内:[(][)]
您的模式中没有定义的组。您的模式中没有定义的组。