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

问题描述 投票:0回答:2

我需要一个正则表达式匹配格式像这样的字符串:

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

我一定要使用//d为每个单独的数字吗?怎么样负数?

java regex
2个回答
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)

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

尝试this.See demo.Set标志m

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

© www.soinside.com 2019 - 2024. All rights reserved.