我希望捕获匹配模式的分组,其中输入可以包含该组一次或多次。
例如:
我希望能够捕获“12 Mar 16”这个文本。为此,我使用了简单的正则表达式:
然而我的问题是,当输入包含多个这些组时,我无法捕获后续的匹配。
例如:
如下所示:
这些需要匹配的组数会随时变化,我想知道是否有一种正则表达式可以在包含1个或多个这些组的输入上工作。我已经尝试过:
例如:
input = 12361 randomstuff371 12 Mar 16 138more random381 stuff73f
我希望能够捕获“12 Mar 16”这个文本。为此,我使用了简单的正则表达式:
从中我轻松地使用了正则表达式:
pattern = (".*(\\d{2}\\s\\w+\\s\\d{2}).*");
然而我的问题是,当输入包含多个这些组时,我无法捕获后续的匹配。
例如:
input = randomstuff371 12 Mar 16 14 Jan 15 13 Feb 16 138more random381 stuff73f
如下所示:
group 1 = 12 Mar 16
group 2 = 14 Jan 15
group 3 = 13 Feb 16
这些需要匹配的组数会随时变化,我想知道是否有一种正则表达式可以在包含1个或多个这些组的输入上工作。我已经尝试过:
pattern = (".*(\\d{2}\\s\\w+\\s\\d{2}\\s)+.*"); \\ Not sure about whitespace at the end
然而它没有起作用。这更多是因为我如何存储这些捕获的组吗?我无法预先确定我需要多少组,特别是因为正则表达式需要处理许多这些输入。
我感觉最好是捕获整个日期段并稍后使用matcher.find()
来计算我需要的组数。
任何帮助将不胜感激。
.*
在前面和后面。不要这样做。 - Willem Van Onsem