Java 在Android中解析.NET json日期时间

Java 在Android中解析.NET json日期时间,java,android,regex,Java,Android,Regex,我正在尝试从字符串/日期(1472665457134)中提取1472665457134/ 但是,尽管正则表达式看起来是正确的,但它不起作用,为什么 String jsondate = "/Date(1472665457134)/"; Pattern pattern = Pattern.compile("/(\\d+)(?:-(\\d+))?/"); Matcher matcher = pattern.matcher(jsondate); if (matcher.find()) //false

我正在尝试从字符串/日期(1472665457134)中提取1472665457134/

但是,尽管正则表达式看起来是正确的,但它不起作用,为什么

String jsondate = "/Date(1472665457134)/";

Pattern pattern = Pattern.compile("/(\\d+)(?:-(\\d+))?/");
Matcher matcher = pattern.matcher(jsondate);
if (matcher.find()) //false here!!
{
    Log.d("test", matcher.group(1));
}
试试这个正则表达式:

\((-?\d+)\) 
作为Java字符串,它是:

"\\((-?\\d+)\\)"
捕获组1将包含括号中包含的正数或负数

描述 因为您的示例字符串非常基本,您试图捕获日期,然后获取数字

([0-9]+)

此正则表达式将执行以下操作:

  • 获取由数字组成的子字符串
例子 现场演示

示例文本

/日期(1472665457134)/
样本匹配

1472665457134
解释
节点说明
----------------------------------------------------------------------
(组和捕获到\1:
----------------------------------------------------------------------
[0-9]+从“0”到“9”的任何字符(1个或更多)
次数(与最大金额匹配)
(可能的)
----------------------------------------------------------------------
)结束\1
----------------------------------------------------------------------
可供替代的 但是,如果您还需要验证是否在
日期之后直接获得括号内的数字子字符串,那么这个正则表达式就可以了

date\(([0-9]+)\)


注意,在Java中,您需要将所有的
\
替换为
\

,您应该将括号转义,它们用于在正则表达式中进行分组。