Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Andoid pathPattern正则表达式问题_Android_Android Intent_Glob_Intentfilter - Fatal编程技术网

Android Andoid pathPattern正则表达式问题

Android Andoid pathPattern正则表达式问题,android,android-intent,glob,intentfilter,Android,Android Intent,Glob,Intentfilter,我面临一个与Android意图过滤器相关的问题,特别是在具有路径模式的数据元素中 参考: 我需要匹配有效URL的模式,如 任何东西-到-任何东西-训练 从字符串到-到字符串 下面提到的模式工作得几乎完美 <data android:pathPattern=".*to.*trains" /> <data android:pathPattern=".*to.*trains/" /> 您可以使用\(反斜杠)使用特殊字符 i、 e 对于您

我面临一个与Android意图过滤器相关的问题,特别是在具有路径模式的数据元素中 参考:

我需要匹配有效URL的模式,如

任何东西-到-任何东西-训练

从字符串到-到字符串

下面提到的模式工作得几乎完美

<data android:pathPattern=".*to.*trains" />
<data android:pathPattern=".*to.*trains/" />

您可以使用\(反斜杠)使用特殊字符

i、 e

对于您的解决方案,这可能会起作用

[A-Za-z0-9].*\-.[A-Za-z0-9].*

查看
模式\u SIMPLE\u GLOB
文档,您无能为力

在这种语法中,您可以使用“*”字符来匹配前面零次或多次出现的字符。如果前面的字符是“.”,则它将匹配任何字符。字符“”可用作转义符。这实际上只提供普通regexp的'*'通配符部分

所以这应该行得通


*-to-.*-trains

不,它可以工作,请参见@WiktorStribiżew-Yup,Regex可以工作,但可能是由于Android过滤器的限制。这不包括fromString和toString包含t字符的情况。可能需要有Android背景的人来回答这个问题。当任何地方都有
t
时,这会失败吗?或者只有在最后才会失败,例如
ted对tom训练是否有效?如果t出现在任何地方,则会失败。让我在问题中添加这个无效的示例用例看起来在Android意图过滤器的路径模式中不支持正则表达式。不幸的是,此模式的行为与我提到的模式相同。在这种情况下,您唯一的选择是使用多个通配符,如so
等等。
\- or \.
[A-Za-z0-9].*\-.[A-Za-z0-9].*