正则表达式匹配[WORD]:[数字] [数字] [数字]

时间:2015-10-05 19:01:05

标签: java regex

我对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])

这让我在日食中出错了。

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

\b(\w+):\s*(?:\d+(?:.\d+)?\s*){3}

在Java中使用:

"\b(\w+):\\s*(?:\\d+(?:.\\d+)?\\s*){3}"

RegEx Demo

解体:

\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