正規表示式在OC字串中的使用

2021-10-08 03:27:35 字數 1887 閱讀 3686

使用正規表示式可以判斷某些字串是否符合預期結果.例如常用的判斷手機號是否合法,判斷字串中是否包含中文字串等.

判斷完整字串是否合法.例如驗證手機號,身份證號是否合法,**鏈結是否合法等.

手機號: ^1[3-9]\\d$

身份證號: ^[0-9]$)|([0-9]([0-9]|x)$

中文姓名: ^[\u4e00-\u9fa5]

// 判斷手機號是否合法

nspredicate *predicate = [nspredicate predicatewithformat:@"self matches %@", @"^1[3-9]\\d$"];

nsarray * mobiles = @[

@"17826830415",

@"12826830415",

@"27826830415",

@"1782683041"

];for (nsstring *mobile in mobiles)

使用正規表示式可以從字串中篩選出符合要求的子串.

// 例如在字串中篩選出以window開頭的所有子串.

nserror *error = nil;

nsregularexpression *reg = [nsregularexpression regularexpressionwithpattern:@"\\bwindows[0-9a-za-z]+" options:(nsregularexpressionallowcommentsandwhitespace) error:&error];

nsstring *content = @"歷史上比較受歡迎的電腦作業系統版本有: windowsxp, windowsnt, windows98, windows95等";

if (!error) ];

for (nstextcheckingresult *ele in result)

}

使用正規表示式可以動態修改/替換字串中的某些內容,將字串修改為符合要求的內容.

// 將**號碼中中間四位替換為****

nsmutablestring *content = @"17826830415".mutablecopy;

nserror *error = nil;

nsregularexpression *reg = [nsregularexpression regularexpressionwithpattern:@"(?<=1[3-9])([0-9])(?=[0-9])" options:(nsregularexpressionallowcommentsandwhitespace) error:&error];

if (!error) withtemplate:@"****"];

nslog(@"content == %@", content);

}

使用正規表示式可以儲存匹配到的字串,並在子串的指定位置作新增.

// 例如將js方法呼叫都通過統一的方法進行**

nsmutablestring *content = [nsmutablestring stringwithstring:@"var view = uiview.alloc().init();per.setframe();"];

nserror *error = nil;

nsregularexpression *reg = [nsregularexpression regularexpressionwithpattern:@"(?這就也是jspatch的乙個重要基礎.

使用正規表示式分隔字串

在分隔乙個字串為陣列時可採用string物件上的spilt方法,可以傳入乙個字串進行分隔也可以傳入乙個正規表示式進行分隔。比如字串是由很多單詞構成的,中間採用的分隔符可能有空格或標點符號或其他的特殊字元。比如下列的字串物件 string str station news talk 可以採用如下 進行...

OC正規表示式的使用

oc中一般正規表示式的使用方法為2步 1.建立乙個正規表示式物件 2.利用正規表示式來測試對應的字串 例如nsstring checkstring a34sd231 1.建立正規表示式,0 9 表示 0 到 9 的字元的集合 nsstring pattern 0 9 將正規表示式設定為oc規則 ns...

oc正規表示式

在電腦科學中,是指乙個用來描述或者匹配一系列符合某個句法規則的字串的單個字串。在很多文字編輯器或其他工具裡,正規表示式通常被用來檢索和 或替換那些符合某個模式的文字內容。許多程式語言都支援利用正規表示式進行字串操作。正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備...