Python 如何匹配android应用程序的捆绑id?
我希望像这样匹配URL:Python 如何匹配android应用程序的捆绑id?,python,regex,Python,Regex,我希望像这样匹配URL: def get_id(toParse): return re.search('id=(.+)&', toParse).groups()[0] 输入: x = "https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd&hl=en" get_id(x) 输出: com.alibaba.aliexpresshd 在python中使用re的最佳方法是什么 def
def get_id(toParse):
return re.search('id=(.+)&', toParse).groups()[0]
输入:
x = "https://play.google.com/store/apps/details?id=com.alibaba.aliexpresshd&hl=en"
get_id(x)
输出:
com.alibaba.aliexpresshd
在python中使用re的最佳方法是什么
def get_id(toParse):
return re.search('id=(WHAT TO WRITE HERE?)', toParse).groups()[0]
我发现只有一个点的箱子。您可以试试:
r'\?id=([a-zA-Z\.]+)'
对于您的正则表达式,如下所示:
def get_id(toParse)
regex = r'\?id=([a-zA-Z\.]+)'
x = re.findall(regex, toParse)[0]
return x
正则表达式-
通过在实际正则表达式代码之前添加r
,我们指定它是原始字符串,因此我们不必在每个命令之前添加多个反斜杠,即
?
对正则表达式系统具有特殊意义,因此为了匹配问号,我们在它前面加了一个反斜杠,如\?
id=
匹配提取的id=
部分([a-zA-Z\.]+)
是正则表达式的组(0),它与URL的id匹配。因此,通过说[0]
,我们可以返回所需的文本
注意-我为此使用了re.findall
,因为它返回一个数组[]
,其索引0处的元素是提取的文本
我建议您查看一下以获得正则表达式语法的完整列表。实际上,您不需要在那里放置任何“特殊”的内容 因为您知道bundle id介于
id=
和&
之间,所以您可以捕获其中的任何内容,并在捕获组中生成如下结果:id=(.+)&
因此,代码如下所示:
def get_id(toParse):
return re.search('id=(.+)&', toParse).groups()[0]
注意:您可能需要将组索引更改为“1”,而不是“0”,因为大多数正则表达式引擎将此保留为完全匹配。我不熟悉Python实际上是如何处理这个问题的
请参见演示这个正则表达式应该很容易得到您想要的,它可以得到
id=
和以下参数(*?
被取消冻结)或字符串结尾之间的所有内容
id=(.*)(&|$)
如果您只需要id本身,它将在第一组中