我不是很熟悉正則表達式,所以我在這裏問它。獲取字符串之間的字符串
我有一個字符串,像這樣:
BEGIN:VCARD
VERSION:3.0
FN:A Sirius Swimwear Collection
N:Collection;A;Sirius Swimwear;;
TEL;TYPE=HOME:22448
TEL;TYPE=CELL:52316
ADR:;Taylors Road;;;;;
ORG:Norfolk Phone Book
END:VCARD
BEGIN:VCARD
VERSION:3.0
FN:A Walk in the Wild
N:Wild;A;Walk in the;;
TEL;TYPE=HOME:22502
item1.TEL:23205
item1.X-ABLabel:Facsimile
ADR:;Grassy Road;;;;;
ORG:Norfolk Phone Book
END:VCARD
BEGIN:VCARD
VERSION:3.0
FN:AATA Orn Tours
N:Tours;AATA;Orn;;
TEL;TYPE=HOME:23611
TEL;TYPE=CELL:50755
ADR:;Bookings;;;;;
ORG:Norfolk Phone Book
END:VCARD
BEGIN:VCARD
VERSION:3.0
FN:Aatuti Art
N:Art;Aatuti;;;
TEL;TYPE=HOME:23669
ADR:;The Village;;;;;
ORG:Norfolk Phone Book
END:VCARD
BEGIN:VCARD
VERSION:3.0
FN:ABC Hobby Centre
N:Centre;ABC;Hobby;;
TEL;TYPE=HOME:22139
ADR:;Taylors Road;;;;;
ORG:Norfolk Phone Book
END:VCARD
(...)
對於那些熟悉,它是一堆電子名片的,我想通過一個從字符串得到一個電子名片之一。所以,我想把它分成多個字符串。我想用BEGIN:VCARD
和END:VCARD
標籤分裂
結束了:說實話
vcard1 = "BEGIN:VCARD
VERSION:3.0
FN:A Sirius Swimwear Collection
N:Collection;A;Sirius Swimwear;;
TEL;TYPE=HOME:22448
TEL;TYPE=CELL:52316
ADR:;Taylors Road;;;;;
ORG:Norfolk Phone Book
END:VCARD";
vcard2 = "BEGIN:VCARD
VERSION:3.0
FN:A Walk in the Wild
N:Wild;A;Walk in the;;
TEL;TYPE=HOME:22502
item1.TEL:23205
item1.X-ABLabel:Facsimile
ADR:;Grassy Road;;;;;
ORG:Norfolk Phone Book
END:VCARD";
vcard3 = "BEGIN:VCARD
VERSION:3.0
FN:AATA Orn Tours
N:Tours;AATA;Orn;;
TEL;TYPE=HOME:23611
TEL;TYPE=CELL:50755
ADR:;Bookings;;;;;
ORG:Norfolk Phone Book
END:VCARD";
,我需要的只是正確的正則表達式模式爲我能夠做他們的週期。 這是在JAVA(適用於Android)。
編輯
這是我到目前爲止已經試過沒有成功:
if(vcard.contains("VERSION:"))
{
Log.d(TAG, "Creating the patterns");
Pattern p = Pattern.compile("BEGIN:VCARD(.*)END:VCARD");
Matcher m = p.matcher(vcard);
if (m.find())
{
Log.d(TAG, "Find: " + m.group(1));
}
Log.d(TAG, "Not found anything");
不錯,你到目前爲止嘗試過什麼? – nKn
我不認爲你在這裏需要一個正則表達式,當你找到一個'BEGIN:VCARD'行時,開始建立一個字符串,並且當你找到一個'END:VCARD'行時,把構建的字符串添加到列表中。 –
@nKn檢查我編輯的問題。 – dazito