【发布时间】:2011-03-08 09:32:08
【问题描述】:
我希望这个标题有意义 - 我需要在 BlackBerry 5 上进行不区分大小写的正则表达式匹配。
我有一个正则表达式定义为:
public static final String SMS_REG_EXP = "(?i)[(htp:/w\\.)]*cobiinteractive\\.com/[\\w|\\%]+";
它旨在匹配“cobiinteractive.com/”后跟一些文本。前面的(htp:w.)就在那里,因为在我的设备上我需要覆盖手机应用的内部链接识别(无耻的黑客攻击)。
应用程序在启动时加载。我的想法是我想从短信和电子邮件中获取指向我网站的链接,并使用我的应用程序处理它们。
我将它添加到 PatternRepository 使用:
PatternRepository.addPattern(
ApplicationDescriptor.currentApplicationDescriptor(),
GlobalConstants.SMS_REG_EXP,
PatternRepository.PATTERN_TYPE_REGULAR_EXPRESSION,
applicationMenu);
- 在 os 4.5 / 4.7 模拟器和 Curve 8900 设备(运行 4.5), 这行得通。
- 在 os 5 模拟器和 Bold 9700 我测试过,应用编译失败 模式与 IllegalArgumentException("无法识别 (?") 之后的字符。
我也尝试(天真地)将模式设置为“/rockstar/i”,但它只匹配确切的字符串——这可能是正确的方向,但如果是这样,我不知道如何实现它在 BB 上。
如何修改我的正则表达式,以便使用上述 PatternRepository 获取不区分大小写的模式?
PS:“正确”的方法是使用 [Cc][Oo][Bb][Ii]2... 等模式吗?这对于短字符串来说是可以的,但如果可能的话,我希望有一个更通用的解决方案?
【问题讨论】:
标签: regex blackberry pattern-matching