簡體   English   中英

如何通過正則表達式匹配字符串值?

[英]How to match string value by regular expression?

我正在制作依賴於html.i的應用程序,將html文件傳遞給代碼,所有數據都顯示在控制台中,但是我的問題是如何通過使用正則表達式匹配字符串我沒有給html所有數據,這是很大的價值在控制台上打印

www.ryanair.com" title="Home">Home</a> | <a href="http://www.ryanair.com/site/EN/faqs.php" title="F.A.Q." target="_blank">F.A.Q.</a> | <a href="http://www.ryanair.com/site/EN/conditions.php?view=privacy" title="Privacy Policy" target="_blank">Privacy Policy</a> | <a href="http://www.ryanair.com/site/EN/conditions.php" title="General Terms &amp; Conditions of Carriage" target="_blank">General Terms &amp; Conditions of Carriage</a> | <a href="http://www.ryanair.com/en/terms-and-conditions/copywrite" title="Terms of Use" target="_blank">Terms of Use</a> | <a href="http://www.ryanair.com/site/EN/faqs.php?sect=CONTACT&amp;div=int_sup" title="Contact Us" target="_blank">Contact Us</a> | <a href="javascript:infoWin('trvfee',0,0,'EN');" title="Fees">Fees</a></div><div id="copyr">Copyright 2009 Ryanair Ltd.</div><input type="hidden" id="language" value=""><input type="hidden" id="culture" value=""><script type="text/javascript"> xtnv=document; xtsd=(window.location.protocol.indexOf('https:')==0?'https://logs152':'http://logc158'); xtsite=(window.location.hostname.indexOf('www.bookryanair.com')!=-1)?'384235':'385193'; xtn2="3"; xtpage="BookingProcess_IE::Search"; xtdi="1";  </script><script type="text/javascript" src="js/Ryanair/xtcore.js"></script><noscript><img width="1" height="1" alt="" src="http://logc158.xiti.com/hit.xiti?s=384235&amp;s2=3&amp;p=BookingProcess_IE::Search&amp;di=1"></noscript></div></div></div><div class="clr"></div><script language="javascript" type="text/javascript"><!--
                    var MacsArray = new Array();

                var SortedStations = new Array(
            "AAR","ABZ","AGA","AHO","ALC","LEI","AOI","BCN","BRI","EGC","SXF","BZR","BIQ","BLL","BHX","BLQ","BOD","BOH","BTS","BRE","BES","BDS","BRS","BSL","BRQ","CRL","BZG","CAG","CCF","CND","ORK","CUF","LDY","DNR","DSA","DUB","MME","NRN","EMA","EDI","EIN","FAO","FEZ","FSC","HHN","FUE","GDN","GOA","GRO","PIK","GSE","GRX","LPA","GRZ","GNB","LBC","HAU","IBZ","XRY","FKB","KTW","KUN","KIR","KLU","NOC","KGS","KRK","SUF","ACE","LPP","LCA","LRH","LBA","LIL","LIG","LNZ","LPL","LCJ","LGW","LTN","STN","LDE","MST","MAD","AGP","MLA","MAN","RAK","MRS","FMM","BGY","MPL","MJV","NDR","NTE","NCL","NQY","FNI","OSI","RYG","TRF","OUD","PMO","PMI","BVA","MMX","XCR","PMF","PGF","PEG","PSR","PSA","PDV","PIS","OPO","POZ","PRG","PUY","REU","RHO","RIX","RMI","RDZ","CIA","RZE","SZG","SDR","SCQ","SVQ","SNN","VXO","EBU","NYO","VST","SZZ","TMP","TNG","TFS","TLN","TUF","TPS","TRS","TRN","VLC","VLL","TSF","VRN","VOL","WRO","ZAD","ZAZ","RLG","KSD","CSO","SFT","TLL","HUY","RJK","SKG","VCE","VNO","CHQ","CFU","LEJ"
                );

                var Stations = new Array();
                Stations["AAR"] = new Station("AAR", "", "Aarhus", true, true, new Array("AGP","RYG","STN"));
Stations["AGP"] = new Station("AGP", "", "Malaga", true, true, new Array("AAR","BCN","BGY","BHX","BLL","BLQ","BOH","BRE","BRS","BTS","BVA","CRL","CSO","DUB","EDI","EIN","EMA","FMM","GSE","HAU","HHN","IBZ","KRK","LBA","LPL","MAN","MMX","MRS","MST","NRN","NYO","ORK","PIK","PSA","RYG","SCQ","SDR","SNN","STN","SXF","TMP","TRF","VCE","VLC","VLL","VST","WRO","ZAZ"));
Stations["RYG"] = new Station("RYG", "", "Oslo (Rygge)", true, true, new Array("AAR","AGP","ALC","BCN","BVA","BZR","CIA","CRL","DUB","FAO","FMM","GDN","HHN","KGS","KRK","KUN","LGW","LPL","LRH","MAD","MAN","NCL","NYO","PMI","PMO","POZ","RIX","SKG","STN","SXF","TLL","TMP","VCE","VLC","WRO","XCR","ZAD"));


i done this for match all string value in code
- (void)applicationDidFinishLaunching:(UIApplication *)application {  
    [self sendRequest ];
    //Extraction of valid mail ids
    //NSString * searchString = @" para.g@gmail.com sourabh_84368@gmail.com abc@def.in abcd@yahoomail.com mobisoft@mail.in andy@rediffmail.com";
    NSString * searchString = loginstatus;
    NSString *regexString = @"[a-z0-9_.%]+@[a-z0-9_.%]+\\.[a-z][a-z][a-z]";
    //NSString *regexString = @"Stations\["(.*)"\] = new Station\((.*)\);";
    NSArray  *matchArray   = nil;
    matchArray = [searchString componentsMatchedByRegex:regexString];
    NSLog(@"matchArray: %@", matchArray);
    // Override point for customization after application launch
    //NSString* source = @"Test;12;Y";
//  NSArray* columns = [source componentsSeparatedByRegex:@";\\s*"];
//  NSLog([columns description]);
//    [window makeKeyAndVisible];
}

請有人幫我

使用NSPredicate將字符串與正則表達式匹配。

NSString *searchString = @"loginStatus";
NSString *regexString = @"[a-z0-9_.%]+@[a-z0-9_.%]+\\.[a-z][a-z][a-z]";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self matches %@", regexString];
BOOL isStringValid = [predicate evaluateWithObject:searchString];
  • 如果您正在為iOS4 +開發,請使用NSRegularExpression
  • 如果您需要定位以前的iOS版本:
    • 您可以嘗試使用通過MATCHES運算符支持ICU RegEx語法的NSPredicate 但是它僅允許您測試字符串是否匹配,並且不能進行替換也不能提取匹配的字符串,因此這是非常有限的。
    • 您可以使用RegExKit類的第三方庫

如果您嘗試使用正則表達式來解析HTML,則可能是錯誤的方法。 已經有專用的解析器,例如NSXMLParser,與重新發明用正則表達式從HTML中獲取數據的發明相比,NSXMLParser相對於您更容易在應用中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM