如何为android:host编写正则表达式

时间:2016-01-14 11:41:22

标签: java android regex xml string

我有多个主机,例如:

  • example1.myhost.abc
  • example2.myhost.xyz
  • example3.myhost.jkl

我想在intent过滤器的data属性中为主机名编写正则表达式。这看起来像这样:

<data
android:host=".*myhost.*"
android:scheme="http"/>

但它不适合我。似乎android:host不支持正则表达式。有没有办法实现它?

2 个答案:

答案 0 :(得分:1)

  

似乎android:host不支持正则表达式。

正确。

  

有没有办法实现它?

您可以说您处理http方案而未指定任何其他方式(例如,没有host,没有path)。这将涵盖所有您想要的模式,但它也将涵盖所有其他域名。

或者,由于您可以拥有多个<data>元素,因此您可以根据需要使用尽可能多的host个属性来覆盖所有网站,而无需使用正则表达式。

答案 1 :(得分:-1)

如果格式一致,则可以使用split。它比正则表达式更快。<​​/ p>

给出文字字符串:

string.split(".*")[1]

你可以捕获&#34; myhost&#34;用:string.split("\"")[1]

或者你可以捕获&#34;。* myhost。*&#34;用:{{1}}