我在Java(Eclipse)中有此Regex:
private final static String GENERALIZED_TIME_PATTERN = "^(?<year>\\d{4})(?<month>\\d{2})(?<day>\\d{2})(?<hour>\\d{2})((?<minute>\\d{2})(?<second>\\d{2})?)?([.,](?<frac>\\d+))?(?<timezone>Z|([+-]\\d{2}(?<tzmin>\\d{2})?))?$";
此代码位于.jar中。它可以在Eclipse上正常工作,并且我可以使用它。
我也想在Android项目中使用此.jar。但是当我使用它时,出现以下错误:
Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 5:
^(?<year>\d\{4\})(?<month>\d\{2\})(?<day>\d\{2\})(?<hour>\d\{2\})((?<minute>\d\{2\})(?<second>\d\{2\})?)?([.,](?<frac>\d+))?(?<timezone>Z|([+-]\d\{2\}(?<tzmin>\d\{2\})?))?$
我不是Pattern和Regex方面的专家,但据我了解,我必须根据Android Pattern用{
来代替括号}
和\
但是\
在Java中不被理解为转义字符。它必须是\\
。
所以我的问题是,如何在Java和Android的Eclipse中使用相同的字符串?也许我不能吗?但是我的.jar是共享的,那么如何实现呢?