2011-10-12 46 views
0

我有很長的字符串:獲取字符串使用正則表達式

1;#Subject:SW|
vti_parserversion:SR|14.0.0.4762
vti_folderitemcount:IR|0
_Category:SW|
vti_author:SR|SHAREPOINT\\system
_dlc_DocIdItemGuid:SW|8435986b-4ff2-4e03-9879-d15568d88f0b
vti_approvallevel:SR|
vti_categories:VW|
vti_foldersubfolderitemcount:IR|0
vti_modifiedby:SR|SHAREPOINT\\system
vti_assignedto:SR|
Keywords:SW|
_Status:SW|
vti_cachedcustomprops:VX|vti_approvallevel vti_categories Subject vti_assignedto Keywords _Status vti_title _Author _Category _dlc_DocId _Comments _dlc_DocIdUrl _dlc_DocIdItemGuid
ContentTypeId:SW|0x01010013CD7B577B3AC84B8467BC0F2B82B30D
_dlc_DocId:SW|5VQNHKQHD5Z4-9-1
vti_cachedtitle:SR|SharePoint 2010 Deployment Guide
vti_title:SR|SharePoint 2010 Deployment Guide
_Author:SW|
_dlc_DocIdUrl:SW|http://blub.com/_layouts/DocIdRedir.aspx?ID=5VQNHKQHD5Z4-9-2, 5VQNHKQHD5Z4-9-1
_Comments:SW|
 

我想解析DocIdUrl(之間的字符串「_dlc_DocIdUrl:SW |」和「」),我使用RegexKitLite有:String stringByMatching:regExP

這是我第一次RegExpression:NSString* regExp = @"(?=\_dlc_DocIdUrl:SW|)(.*?)(?=\,)";

但它給我:_dlc_DocIdUrl:SW | HTTP://blub.com/_layouts/DocIdRedir.aspx ID = 5VQNHKQHD5Z4-9-2

我只想要URL,我該如何解決?

我很困惑!

回答

0

這裏是正則表達式解決您的問題:

_dlc_DocIdUrl:SW\|(?<value>[^,]*),+ 

你會發現一個名爲「價值」

+0

這個Iam變空了嗎?! 也許Iam與RegexKitLite錯誤? Iam使用:stringByMatching 當stringByMatching給我一個NSString回來時,我如何使用組? 預先感謝 – verklixt

0
(?<=_dlc_DocIdUrl:SW\|)[^,]*(?=,) 

這個給你,你直接需要的組中的請求的URL,不進行分組。

+0

這就是現在的IAM越來越: 2; #vti_parserversion:SR | 14.0.0.4762 vti_modifiedby:SR | DOMAIN \\ MYNAME vti_folderitemcount:IR | 0 vti_foldersubfolderitemcount:IR | 0 ContentTypeId:SW | 0x01010013CD7B577B3AC84B8467BC0F2B82B30D _dlc_DocId:SW | 5VQNHKQHD5Z4-9-2 vti_author:SR | DOMAIN \\名稱 _dlc_DocIdItemGuid:SW | 33047fc7-f6e9-40ce-ab0a-415cc1d666c3 _dlc_DocIdUrl:SW | HTTP://InternetADRESS.com/_layouts/DocIdRedir。 aspx?ID = 5VQNHKQHD5Z4-9-2 我如何與團隊合作? stringByMatching給了我一個字符串返回... – verklixt