Android Andoid pathPattern正则表达式问题
我面临一个与Android意图过滤器相关的问题,特别是在具有路径模式的数据元素中 参考: 我需要匹配有效URL的模式,如 任何东西-到-任何东西-训练 从字符串到-到字符串 下面提到的模式工作得几乎完美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 对于您
<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].*