黑莓Bold- 无法识别URL甚至已注册的自定义模式

14

我们有一个运行在 BB Bold 9700 (OS 版本: 5.0) 上的黑莓原生应用程序。

该应用程序注册了一个自定义模式,形如 string://[0-9]*。匹配该模式的字符串会被高亮显示,但应用程序无法接收完整的字符串。

此外,在识别和突出显示 URL 时,当启动后,BB 浏览器 只接收到部分字符串 - http://

这个问题只发现在 BB Bold 9700 (OS 版本: 5.0) 上。

还有几个问题:

  1. 是否有方法可以查找黑莓设备注册的所有系统模式?
  2. 如果一段文本与多个模式匹配,黑莓如何解决冲突?

在我的情况下,两个文本 "http://urlline" 和 "string://customtext" 分别被削减为 "http:// 和 string"。


2
请发布声明正则表达式和使用它的代码。 - Mister Smith
1
在应用程序的自启动入口点中,我们设置了模式: if (args[0].equals("startUp")) { String pattern = "MyString://(\d{1,2})\,(\d{7})"; int patternType = PatternRepository.PATTERN_TYPE_REGULAR_EXPRESSION; MyMatchMenuItem[] menuItems = { new MyMatchMenuItem(100) }; PatternRepository.removePatterns(application); PatternRepository.addPattern(application, pattern, patternType,menuItems); } 通过新的入口点调用应用程序,并在启动时识别字符串: ApplicationManager.getApplicationManager().launch("MyApp.altEntry?" + context.toString()); - Dakshina Ilangovan
你使用的正则表达式很奇怪。我不明白为什么要转义逗号。你是希望匹配像 "MyString://41,57" 这样的字符串吗? - Mister Smith
如果是这种情况,我建议您使用以下内容:"MyString://\d{1,2},\d7" - Mister Smith
这是确切的正则表达式:"[sS][tT][rR][iI][nN][gG]://(\d{1,2})\,(\d{7})"。另外,您能帮我回答其他问题吗? - Dakshina Ilangovan
1
我有点困惑。你发布的正则表达式似乎期望像string://12,3456789这样的URL(数字而不是字母),但你发布的示例URL是string://customtext(字母而不是数字)。 - Daniel Schilling
1个回答

1
我即将提出的建议可能很琐碎,我知道这一点,但你尝试过吗:
\w+\:\/\/[\w\d\.\,\:\;]+

这将匹配冒号前的字符串、冒号、双斜杠和其后的任何字母、数字或标点符号(显然,您可以进一步专门化表达式)。

我不是黑莓开发人员,所以无法回答您的其他问题,对此我感到抱歉。

无论如何,如果有任何疑问或澄清,您都可以依靠这个网站


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接