有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

检查字符串格式的java正则表达式?

我需要一个正则表达式来匹配如下格式的字符串:

2014-08-06T21:02:16Z,-33.7939310,151.0553090,-0.8

我是否必须为每个数字使用//d?负数呢


共 (2) 个答案

  1. # 1 楼答案

    这个怎么样:

    /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z,-?\d{2,3}\.\d{7},-?\d{2,3}\.\d{7},-?\d{1,2}\.\d/
    

    例如,\ d{4}表示“4位”,而-*表示“0或更多破折号”,因此应匹配正数或负数

    通过使用以下可能的字符组,您也可以更加通用:

    /[0-9-]{10}[0-9TZ:]{10},[0-9-.,]{26,28}/
    

    即,任何数字或破折号表示10个字符,而数字或字母T或Z或冒号表示10个以上字符,然后是逗号,数字、破折号、句点或逗号表示26-28个字符。这不像上面的正则表达式那样严格,但根据您的要求可能足够了

    以上内容适用于javascript和perl,下面是R版本(双转义):

    s <- "2014-08-06T21:02:16Z,-33.7939310,151.0553090,-0.8"
    grep("\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z,-?\\d{2,3}\\.\\d{7},-?\\d{2,3}\\.\\d{7},-?\\d{1,2}\\.\\d", s)
    
  2. # 2 楼答案

    ^\d{4}-\d{1,2}-\d{1,2}T\d{2}:\d{2}:\d{2}Z,-?\d*\.?\d*,\d*\.\d*,-?\d*\.\d*$
    

    试试这个。见演示。设置标志m

    http://regex101.com/r/uH3tP3/7