8
我想捕獲匹配輸入可以包含此組的一個或多個模式的組。正則表達式:捕獲一個或多個組(如果存在)(Java)
例子:
input = 12361 randomstuff371 12 Mar 16 138more random381 stuff73f
我想捕捉的 「16年3月12日」。
從這個我很容易地使用正則表達式:
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
以匹配將總是改變這些基團的數目,因此我不知道是否有一個正則表達式,將工作在輸入包含一個或多個這些組。我曾嘗試過:
pattern = (".*(\\d{2}\\s\\w+\\s\\d{2}\\s)+.*"); \\ Not sure about whitespace at the end
但是它不起作用。這更多與我如何存儲這些捕獲的組有關?我不能預先確定我需要的組的數量,特別是因爲正則表達式需要處理許多這些輸入。
我感覺好像只是捕捉整個日期段並稍後用matcher.find()
來處理它來計算我需要的組數。
任何幫助將不勝感激。
這是因爲前後的'。*'。不要這樣做。 –
@詹姆斯,請考慮接受答案,如果它適合你(請參閱[如何接受所有答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) )。 –