所以我需要匹配以下内容:
1.2.
3.4.5.
5.6.7.10
((\d+)\.(\d+)\.((\d+)\.)*)
在第一行就可以了,但是问题是:可能有很多行:可能是一个或多个。\n
仅在多于一行的情况下出现。在字符串版本中,我这样获得:
"1.2.\n3.4.5.\n1.2."
所以我的问题是:如果只有一行,则
\n
不必在末尾,但是如果有多行,除了最后一行,每行的末尾都必须有\n
。 最佳答案
这是我建议的模式:
^\d+(?:\.\d+)*\.?(?:\n\d+(?:\.\d+)*\.?)*$
Demo
这是该模式的简要说明:
^ from the start of the string
\d+ match a number
(?:\.\d+)* followed by dot, and another number, zero or more times
\.? followed by an optional trailing dot
(?:\n followed by a newline
\d+(?:\.\d+)*\.?)* and another path sequence, zero or more times
$ end of the string