Python 在regex re.search()模式中添加变量
我试图在re.search()的正则表达式中添加一个变量,例如:Python 在regex re.search()模式中添加变量,python,regex,Python,Regex,我试图在re.search()的正则表达式中添加一个变量,例如: xvar=100 答案=重新搜索(r'(xvar=100 答案=重新搜索('(有关格式化字符串的更多信息xvar=100 answer=re.search(”(有关格式化字符串的更多信息,您可以使用格式,对于处理异常,请使用尝试除外: xvar=100 try: answer= re.search(r'(<a href=")(.+count={}.+?)(")'.format(xvar), subreddit).gr
xvar=100
答案=重新搜索(r'(xvar=100
答案=重新搜索('(有关格式化字符串的更多信息xvar=100
answer=re.search(”(有关格式化字符串的更多信息,您可以使用格式,对于处理异常,请使用尝试除外:
xvar=100
try:
answer= re.search(r'(<a href=")(.+count={}.+?)(")'.format(xvar), subreddit).group(2)
except AttributeError:
print 'no match'
xvar=100
尝试:
answer=re.search(r'(您可以使用格式
,对于处理异常,请使用尝试除外
:
xvar=100
try:
answer= re.search(r'(<a href=")(.+count={}.+?)(")'.format(xvar), subreddit).group(2)
except AttributeError:
print 'no match'
xvar=100
尝试:
答案=重新搜索(r'(使用字符串格式:
r'(<a href=")(.+count={}.+?)(")'.format(xvar)
r'(使用字符串格式:
r'(<a href=")(.+count={}.+?)(")'.format(xvar)
r'(通常有3种方法(通常称为格式化或插值):
在大多数情况下,格式被认为是“最佳”实践,尽管你会看到很多插值%
。查看的完整格式语法通常有3种方法(通常称为格式或插值):
在大多数情况下,格式被认为是“最佳”实践,尽管您会看到很多插值%
。请查看变量问题旁边的处的完整格式语法(您应该使用str()
将xvar
int
转换为字符串
),我认为问题还在于使用+?
。如果将其替换为*?
您将获得匹配,并且组(2)
将可访问
请尝试以下代码:
import re
xvar=100
subreddit = r'<a href="something" count="100">Text</a>'
answer= re.search( r'(<a href=")(.+count="' + str(xvar) + r'.*?)(")', subreddit).group(2)
在变量问题旁边有一个。(您应该使用str()
将xvar
int
转换为字符串
),我认为问题还在于使用+?
。如果用*?
替换它,您将得到一个匹配项,并且组(2)
将可以访问
请尝试以下代码:
import re
xvar=100
subreddit = r'<a href="something" count="100">Text</a>'
answer= re.search( r'(<a href=")(.+count="' + str(xvar) + r'.*?)(")', subreddit).group(2)
下面是一个。只需使用一个格式化字符串,其中变量被替换为字符串中的变量。我尝试了以下方法:stringpatern=(xvar
是一个整数,因此转换为字符串。好的,我认为这是问题所在,而且我仍然使用r''。感谢这不应该是问题。只需使用一个格式化字符串,其中变量在字符串中被替换。我尝试了以下方法:stringpatern=(xvar
是一个整数,所以可以转换为字符串。好吧,我认为这是问题所在,而且我仍然使用r''。谢谢,这不应该是问题。int+string=close但没有雪茄
这实际上是最接近我想要的答案。我知道我的问题在哪里,这是一个''问题。@user2369869正如我所说的,你需要这样做。@user2369869转换成字符串。@Malik,谢谢你指出这一点;我已经更新了我的答案。@Stribizev,说得好。我已经把你的答案提高了票数,并修正了我的答案。*?int+string=close,但没有雪茄。
这实际上是最接近我想要的答案。我知道我的问题在哪里,这是一个''问题。@user2369869正如我所说的,你需要转换到一个字符串。@Malik,谢谢你指出这一点;我已经更新了我的答案。@Stribizev,说得好。我已经更新了你的答案,并修正了我的答案。*?。如果使用subreddit=r'',它将失败。
@Stribizev这是他的正则表达式,而不是我的。我只是向他演示如何插值。如果使用subreddit=r'',它将失败。
@Stribizev这是他的r'egex,不是我的。我只是教他如何插值。
r'(<a href=")(.+count={}.+?)(")'.format(xvar)
some_string = "dogs are cute :)"
# very basic, using concatenation:
print "All " + some_string + " and go to heaven."
# Or, using the interpolate operator:
print "All %s and go to heaven." # Use %d for digits, %f for floats, %s for strings, etc. You have to be specific with the variable type.
# Or use string format:
print "All {} and go to heaven.".format(some_string)
import re
xvar=100
subreddit = r'<a href="something" count="100">Text</a>'
answer= re.search( r'(<a href=")(.+count="' + str(xvar) + r'.*?)(")', subreddit).group(2)
something" count="100