我需要從html頁面內容中獲取一些哈希變量值。它看起來像這樣:regexp objective-c。 html解析
//...html code...
var somehash = '12d51e50f4';
//...html code...
如何使用正則表達式或其他方式獲取引號中的值?
我需要從html頁面內容中獲取一些哈希變量值。它看起來像這樣:regexp objective-c。 html解析
//...html code...
var somehash = '12d51e50f4';
//...html code...
如何使用正則表達式或其他方式獲取引號中的值?
這是正則表達式,將匹配的代碼指定行和提取的哈希值到第一個捕獲組:
\bvar\s+somehash\s*=\s*'([0-9A-F]+)';
@Timur在提問這種類型的問題之前應該真正閱讀文檔。這就是說,這是做你所問的一種方法。您可能需要針對您的特定需求調整正則表達式。此代碼被編譯在一個命令行工具只能用Foundation框架鏈接:
int main (int argc, const char * argv[])
{
@autoreleasepool {
NSString *html = @"<html>\n<head>\n<title>Test</title>\n</head>\n<body>var someHash = '123abc';</body></html>";
NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"var someHash = '(\\w*)';" options:NSRegularExpressionCaseInsensitive error:NULL];
NSTextCheckingResult *match = [regexp firstMatchInString:html options:0 range:NSMakeRange(0, html.length)];
if (match) {
NSRange hashRange = [match rangeAtIndex:1];
NSString *hashCode = [html substringWithRange:hashRange];
NSLog(@"Hash Code is %@", hashCode);
}
}
return 0;
}
對於生產代碼,你將要檢查是否有錯誤。
沒有:d 我不知道如何使用正則表達式Objective-c :) –
首先閱讀文檔以熟悉它,並給它一個誠實的嘗試。如果它不像你想要的那樣工作,就用你想出的東西來編輯你的問題。在這個網站上,有幾百個正則表達式的問題。 – Mat
下面是你需要的鏈接:http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html –