我对RegExs很陌生,我永远无法解决这些问题。 “WORD:21.889236 21.889236 0” 我试图以完整的形式检索WORD和3个数字,所有小数都完好无损。这也将通过多次出现的文件运行。 还会有这样的线条 “WORD:1.0 1.0 0”
(\\w+):.([\\d[0-9].{8}).(\\d[0-9].{6})..(\\d[0-9])
这让我在日食中出错了。
答案 0 :(得分:1)
您可以使用此正则表达式:
\b(\w+):\s*(?:\d+(?:.\d+)?\s*){3}
在Java中使用:
"\b(\w+):\\s*(?:\\d+(?:.\\d+)?\\s*){3}"
解体:
\b # word boundary
(\w+) # match a word
: # match literal :
\s* # match 0 or more white-spaces
(?: # start non-capturing group 1
\d+ # match 1 or more digits
(?: # start non-capturing group 2
. # match a decimal point
\d+ # match 1 or digits
)? # end non-capturing group 2 and make it optional
\s* # match 0 or more white-spaces
){3} # end non-capturing group 2 and repeat it 3 times