Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在regex re.search()模式中添加变量_Python_Regex - Fatal编程技术网

Python 在regex 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

我试图在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).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