【问题标题】:How can I write regular expression for android:host如何为 android:host 编写正则表达式
【发布时间】:2016-01-14 11:41:22
【问题描述】:

我有多个主机,例如:

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

我想在意图过滤器的数据属性中为主机名写一个正则表达式。可能看起来像这样:

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

但它不适合我。似乎 android:host 不支持正则表达式。有什么方法可以实现吗?

【问题讨论】:

  • 你不能在你的代码中实现它吗? java肯定允许正则表达式
  • 不,我只需要在意图中处理它。

标签: java android regex xml string


【解决方案1】:

android:host 好像不支持正则表达式。

正确。

有什么方法可以实现吗?

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

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

【讨论】:

  • 感谢您的信息。我已经为不同的服务器拥有多个 元素。
【解决方案2】:

如果您的格式一致,您可以使用split。无论如何,它比正则表达式要快。

给定字符串:

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

您可以通过以下方式捕获“myhost”:string.split(".*")[1]

或者您可以使用:string.split("\"")[1] 捕获“.*myhost.*”

【讨论】:

  • @Downvoter 我可以澄清一下这个答案有什么问题吗?
猜你喜欢
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多