Android intent-filter pathPattern数字匹配

时间:2010-09-03 19:37:35

标签: android android-manifest

我正在为我的Android应用程序添加一个intent过滤器,我希望它能够捕获http://www.somedomain.com/[numericValue]的请求。我只想抓住它,如果路径是数字,但如果它有文本,我不关心它。

我尝试了[0123456789] *的pathPattern,但是没有用。这可能吗?

2 个答案:

答案 0 :(得分:1)

pathPattern不是完整的正则表达式。相反,它使用“简单的glob”,其中*表示前一个字符的零个或多个 - 在您的情况下,零个或多个]个字符。

在我的脑海中,我看不出你如何将你想要的模式转换为可以轻松匹配“简单的水珠”的东西。

答案 1 :(得分:0)

我已经测试了 KTibow 示例,但它不起作用。

但是一种破解方法是可以添加多个数据元素并像这样解决它,因此您可以得到所有以数值开头的情况。它并不完美,但似乎是基于 documentation 的唯一选项,并且似乎不可能执行 /0*1* 之类的操作,因为出于某种原因,它在测试时仅匹配 /1 和 /01。< /p>

 <data
    android:host="example.com"
    android:pathPattern="/0.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/1.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/2.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/3.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/4.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/5.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/6.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/7.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/8.*"
    android:scheme="https" />
<data
    android:host="example.com"
    android:pathPattern="/9.*"
    android:scheme="https" />