IOS NSRegularExpression 解析正則表示式
iOS 中可以通過 NSPredicate 來處理正則表示式。相關資料如下:
在 iOS 中,我們使用 NSPredicate 的字串比較功能來進行正則表示式處理,其比較關鍵字為:MATCHES
下面,列舉一個匹配6-15個由字母/數字組成的字串的正則表示式,來看看 NSPredicate 的具體使用:
NSString * regex = @"(^[A-Za-z0-9]{6,15}$)";
NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isMatch = [pred evaluateWithObject:@"123456ABCde"];
初始化一個 NSRegularExpression 物件 注:_str是要匹配的字串
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?" options:NSRegularExpressionCaseInsensitive error:nil];
獲得所有匹配了表示式的字串。
NSArray *array = nil;
array = [regex matchesInString:_str options:0 range:NSMakeRange(0, [_str length])];
NSString *str1 = nil;
for (NSTextCheckingResult* b in array)
{
str1 是每個和表示式匹配好的字串。
str1 = [_str substringWithRange:b.range];
NSLog(@" str 1 is %@",str1);
}
獲得匹配的字串的個數
NSUInteger numberOfMatches = [regex numberOfMatchesInString:_str options:0 range:NSMakeRange(0, [_str length])];
替換匹配的字串 $0很重要 $0不行的話 $1依此類推 列印了看結果
NSString *modifiedString = [regex stringByReplacingMatchesInString:_str
options:0
range:NSMakeRange(0, [_str length])
withTemplate:@"<a href=\"$0\">$0</a>"];
NSLog(@"######## the modified string is %@",modifiedString);
2.
NSString *regExStr =@"<input type='hidden' id='([G|U]{1})(\\d+)' value='(.*?)'>";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:regExStr options:NSRegularExpressionCaseInsensitiveerror:&error];
[regexenumerateMatchesInString:addressBookString options:0 range:NSMakeRange(0, [addressBookStringlength]) usingBlock:^(NSTextCheckingResult *regResult,NSMatchingFlags flags, BOOL *stop) {
NSString *type = [NSStringstringWithString:[addressBookString substringWithRange:[regResult rangeAtIndex:1]]];
NSString *nameID = [NSStringstringWithString:[addressBookString substringWithRange:[regResult rangeAtIndex:2]]];
NSString *name = [NSStringstringWithString:[addressBookString substringWithRange:[regResult rangeAtIndex:3]]];
if([type isEqualToString:@"G"]){
AddressBookNode *addressBookNode = [[AddressBookNodealloc]init];
addressBookNode.isDirectory =TRUE;
addressBookNode.nodeLevel =1;
addressBookNode.nodeName = name;
addressBookNode.nodeID = nameID;
[addressBookaddChild:addressBookNode];
}else{
AddressBookNode *addressBookNode = [[AddressBookNodealloc]init];
addressBookNode.isDirectory =FALSE;
addressBookNode.nodeLevel =1;
addressBookNode.nodeName = name;
addressBookNode.nodeID = nameID;
[addressBookaddChild:addressBookNode];
}
}];
3.
char *utf8CString
= "test;;;
test2 what are you doing, now?" ; |
06 |
NSString
*regexString = @";" ; |
07 |
NSString
*sourceString = [NSString stringWithUTF8String:utf8CString]; |
08 |
NSString
*resultString = [sourceString stringByReplacingOccurrencesOfRegex:regexString withString: @"_" ]; |
09 |
10 |
NSLog( @"sourceString:
\" %@\"",
sourceString); |
11 |
NSLog( @"resultString:
\" %@\"",
resultString); |
12 |
13 |
char *utf8CString1
= "Copyright
\xC2\xA9 \xE2\x89\x85 2008" ; |
14 |
NSString
*regexString1 = @"Copyright
(.*) (\\d+)" ; |
15 |
相關推薦IOS NSRegularExpression 解析正則表示式iOS 中可以通過 NSPredicate 來處理正則表示式。相關資料如下: 在 iOS 中,我們使用 NSPredicate 的字串比較功能來進行正則表示式處理,其比較關鍵字為:MATCHES 下面,列舉一個匹配6-15個由字母/數字組成 iOS開發之正則表示式快速教程(NSPredicate、NSRegularExpression)1、校驗密碼強度 密碼的強度必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間 ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2、校驗中文 字串只能是中文 ^[\\u4e00-\\u9fa5]{0,}$ 3、由數字,26個英文字母或下劃線 lrc歌詞解析(正則表示式)與歌詞卡拉ok顯示的思路(2):安排一個動作在不同的執行緒中執行。在播放的同時,負責重新整理歌詞資訊,由於歌詞資訊時間點不連續,不可能將取得的歌曲時間play.getCurrentPosition()點去取得相應的歌詞資訊。所以只能去估計,遍歷所有歌詞時間點,當時間有大於play.getCurrentPosition(),就停止遍歷 iOS--正則表示式一、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0 iOS-字串替換-正則表示式-例子- (NSString *)replaceImageHtml:(NSString *)oldHtml { NSString *regex = @"(<img.*?/>)"; NSRange r; NSMutableString *newHtml = [NSMutableS iOS Objective-C 正則表示式做iOS開發已經兩年多了。最近,在整理以前的程式碼,找到當時卡殼的一些程式碼片段,寫部落格跟大家分享一下。歡迎iOS初學者訂閱我的部落格,有什麼問題可以留言交流。以下正文: NSRegularExpression *regularExpression = [[NSR iOS正則表示式簡單應用想要了解基本語法的可以進入下面網站自行學習 自學地址Runoob 正則表示式在iOS的簡單應用 // 匹配小寫a開頭的字串 NSString * regex = @"^a.*"; NSPredicate *pred = [NSPredicate predicateWithForm 解析posix與perl標準的正則表示式區別正則表示式(Regular Expression,縮寫為regexp,regex或regxp),又稱正規表示式、正規表示式或常規表示式或正規化表示法或正規表示法,是指一個用 來描述或者匹配一系列符合某個句法規則的字串的單個字串。在很多文字編輯器或其他工具裡,正則表示式通常被用來檢索和/或替換那些符合某個模式的 C#Json文件解析,寫入,正則表示式轉換。Unity建立Json文件以及寫入。C#: 解析: 解析工具:LitJson,JsonConvert &nb Python指令碼--基於正則表示式對檔案進行解析Python指令碼--基於正則表示式對檔案進行解析 首先需要了解正則表示式中的相應指令(compile、findall),我對此的理解是compile相當於一個規則的制定者,將匹配的規則制定出來,後續具體的操作是findall的工作【選擇適當的規則 python html抓取,並用re正則表示式解析(一)html抓取,並用re進行解析 #coding=utf-8 import urllib.request import re ''' url :"http://money.163.com/special/pinglun/" 抓取第一頁的新聞資訊,並按照以下規格輸出。 [ {'ti python html抓取,並用re正則表示式解析(二)需求: url: “http://search.jd.com/Search?keyword=幼貓貓糧&enc=utf-8#filter” 給出一個jd_search(keyword)方法,keyword為你要查詢的東西,比如:貓糧、手機,替換上面url中的keyword,得到一個新網 java正則表示式解析“正則表示式”到用時方恨少! 學習正則表示式,我覺得還是要循循漸進,由易到難,一點點深入......(本人也在學習中這裡提供個人理解思路,以及一些大神們的獨到講解。。。。。。) 一、知道java正則表示式是幹什麼的? 百度百科定義: 其實這已經說得很明確了,正則表示式其實就是一 網頁 EL正則表示式無法解析和http網頁400錯誤關於EL正則表示式無法解析的問題 <fmt:formatDate value="${user.bir }" pattern=“yyyy-MM-dd”/> 查看了jsp頁面程式碼: <%@taglib uri="http://java.sun.co JavaScript正則表示式練習解析1var url = 'http://blog.163.com/album?id=1#comment'; var reg = /^(https?:)\/\/([^\/]+)(\/[^\?]*)?(\?[^#]*)?(#.*)?$/; * ^(https?:) 開頭為https: s?表示s{ iOS常用正則表示式大全很多不太懂正則的朋友,在遇到需要用正則校驗資料時,往往是在網上去找很久,結果找來的還是不很符合要求。所以我最近把開發中常用的一些正則表示式整理了一下,包括校驗數字、字元、一些特殊的需求等等。給自己留個底,也給朋友們做個參考。 1校驗數字的表示式 數字:^[0-9]*$ 效能比較:lxml庫,正則表示式,BeautifulSoup ,用資料證明lxml解析器速度快Beautiful Soup支援的解析器 解析器 使用方法 優勢 劣勢 Python標準庫 BeautifulSoup(markup, "html.parse 使用正則表示式解析URL在開發HTTP相關程式時,經常會碰到從網路連結URL中提取協議名、伺服器、路徑等目標物件,如果使用C/C++字串操作函式,那麼則顯得有點麻煩且程式碼不易維護,其實關於文字內容的解析工作,都可優先考慮使用正則表示式庫來解決處理,C++方面的正則庫也有很多種,如atl、pcre、boost。下面 leetcode--Python正則表示式解析Valid Phone nums#!/usr/bin/env python import os import re import sys filename=sys.argv[1] fd=open(filename,"r") inde ios 正則表示式替換1. 不可變字串 (content 是不可變) NSRegularExpression *regularExpression = [NSRegularExpressionregularExpressionWithPattern: |