我有一個形式爲"Some lengthy string, Pattern1: string1, Pattern2: string2, Pattern3: string3"
的字符串。我的目標是從這樣的String
中提取string1
,string2
和string3
。拆分字符串多個模式
請注意,Strings
,Pattern1
,Pattern2
和Pattern3
本身由多個字符組成。我知道解決方案,如果這些模式是單個字符。目前我被迫分別撥打String.split()
撥打Pattern1
,Pattern2
和Pattern3
。
有沒有更優雅的做法呢?或者有沒有逃脫多個split()
電話?
編輯:我正在尋找或Java特定的解決方案(因此Java在標題中,但它被編輯出)。任何方式。這是我嘗試過的,它似乎對我有用。這
String someString = "Some lengthy string Pattern1: string1 Pattern2: string2 Pattern3: string3";
String [] str = someString.split("Pattern1:|Pattern2:|Pattern3:");
System.out.println(str[1]);
System.out.println(str[2]);
System.out.println(str[3]);
輸出是
string1
string2
string3
任何明顯的問題呢?
捕獲組可以幫助:['樣式1(S):(。*?)\ S * \ S *模式2:\ S *(。*?),\ s * Pattern3:\ s *(。*)「'](https://regex101.com/r/LA4cts/2) –