我需要一个正则表达式来匹配如下格式的字符串:
2014-08-06T21:02:16Z,-33.7939310,151.0553090,-0.8
我必须对每个数字使用 //d
吗?负数呢?
最佳答案
这个怎么样:
/\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)
关于java - 正则表达式检查字符串格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26352610/