Python 如何匹配android应用程序的捆绑id?

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

我希望像这样匹配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 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本身,它将在第一组中