简单的字符串匹配可以有一下方式:
1、NSString自带的函数方法:
-(BOOL) hasPrefix:(NSString *) astring;检查字符串是否以astring开头;
-(BOOL) hasSuffix:(NSString *) astring;检查字符串是否以astring结尾;
使用方式:
NSString *filename=@"hello,world"; if([filename hasPrefix:@"hello"]){ ... } if([filename hasSuffix:@"world"]){ ... }
如果想知道字符串内的某处是否包含其他的字符串,使用rangeOfString:
-(NSRange) rangeOfString:(NSString *) astring;
将rangeOfString:发送给一个NSString对象时,传递的参数时要查找的字符串。它会返回一个NSRange struct来告诉你一个与这个字符串相匹配的部分从哪里开始以及匹配上的字符个数。
NSRange range=[filename rangeOfString:@"o,world"]; if(range.location!=NSNotFound) { return true; } else { return false; }
2、如果是数值或者字符可以ASCII码判断
3、正则表达式:
正则表达式入门网址推荐(此网页下面还要深入学习网址):http://deerchao.net/tutorials/regex/regex.htm
简单使用代码:
- (BOOL)matchStringFormat:(NSString *)matchedStr withRegex:(NSString *)regex { //SELF MATCHES一定是大写 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; if([predicate evaluateWithObject:matchedStr] == YES) { return YES; } else { return NO; } } - (BOOL)isFitNameFormat:(NSString *)inNameStr { if ([self matchStringFormat:inNameStr withRegex:@"^\\w{3,8}$"]) { return YES; } return NO; } - (BOOL)isFitPasswordFormat:(NSString *)inPasswordStr { if(PasswordLength == inPasswordStr.length) { //改成@"[a-z][A-Z][0-9]{3}"是错的 if([self matchStringFormat:inPasswordStr withRegex:@"[a-zA-Z0-9]{3}"]) { return YES; } } return NO; } - (BOOL)isFitPhoneFormat:(NSString *)inPhoneStr { //正则表达式,[0-9]或\d数值匹配,{11}十一个, if([self matchStringFormat:inPhoneStr withRegex:@"\\d{11}"]) { return YES; } return NO; }
相关推荐
在IT领域,字符串相似度匹配是一项重要的技术,广泛应用于数据清洗、文本检索、信息过滤、推荐系统等多个场景。本主题将深入探讨“两个字符串相似度匹配”的概念、方法及其实现。 字符串相似度匹配旨在量化两个字符...
这个"史上最全的最好用的IOS字符串处理控件"压缩包很可能包含一系列对NSString类的扩展和封装,旨在提供更强大、更便捷的字符串操作功能。在iOS应用开发中,字符串处理是非常常见且重要的任务,包括格式化、搜索、...
在iOS开发中,字符串操作是日常编程中必不可少的一部分。这里我们主要关注三个核心知识点:字符串处理、正则表达式和数据结构。这些概念在iOS应用的各个层面都有广泛的应用,如用户界面交互、数据验证、数据存储等。...
Java字符串匹配是一个常见的编程问题,通常涉及到字符串处理和算法。在这个特定的例子中,采用了一种基于素数对应的方法来检查一个字符串是否是另一个字符串的子序列。以下是这种方法的详细解释: 首先,我们需要...
在iOS开发中,字符串操作是常见的任务之一,尤其是在处理用户输入或者从服务器获取数据时。`NSString` 是Objective-C中的核心类,用于处理文本数据。本篇将详细讲解如何判断一个`NSString`对象是否为空,以及相关的...
本文将详细介绍一些在iOS中处理字符串的基本操作。 1. **字符串拼接**:使用`stringWithFormat:`方法可以将两个或多个字符串拼接在一起。例如: ```swift NSString *tempA = @"123"; NSString *tempB = @"456"; ...
- `compareTo(String anotherString)`: 按字典顺序比较字符串,返回负数、零或正数,表示当前字符串小于、等于或大于另一个字符串。 4. **字符串拼接** - `+` 运算符: 可用于连接字符串,例如 `str1 + " " + str2...
这个压缩包文件“安卓A-Z字母排序索引相关-匹配中文字符串的拼音首字母或英文字符串的首字母缩写.rar”很可能包含了一系列实现这一功能的代码示例。 匹配中文字符串的拼音首字母通常涉及到以下知识点: 1. 汉字转...
首先,我们要理解这个功能的基本逻辑:当用户在输入框(textField)中输入邮箱时,系统会实时检测输入内容,如果用户输入了"@",则在"@"之后的字符与预设的邮箱后缀进行匹配。匹配的规则通常基于后缀的优先级,例如...
在iOS开发中,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于模式匹配、字符串查找、替换和分割等操作。本类库专为iOS环境设计,旨在简化和增强应用程序对正则表达式的处理能力。下面将详细...
在编程领域,模糊匹配是指在不完全匹配的情况下,通过一定的算法找出与目标字符串相似的字符串。在iOS邮箱模糊匹配的场景下,这意味着当用户输入邮箱地址的一部分时,应用能够预测并显示可能的完整邮箱地址,提高...
此外,Swift还提供了正则表达式支持,通过`NSRegularExpression`类可以进行高级的字符串匹配和替换。例如,找出字符串中的所有邮箱地址: ```swift let emailRegex = try! NSRegularExpression(pattern: "[A-Z0-9a-...
然而,在Linux平台上的Swift版本,相较于Apple的iOS和macOS环境,其标准库中的字符串操作可能相对有限。为了弥补这一差距,开发者们创建了`UnchainedString`库,它是一个针对Swift字符串的扩展,目的是增强字符串的...
- 根据输入的字符串,遍历数据模型数组,查找以该字符串开头的名称和代码。 - 可以使用`prefix(while:)`方法检查每个名称或代码是否以输入的字符串开头。 - 匹配成功后,将结果保存到一个新的数组中,用于后续...
这意味着不论你是为iOS、macOS、Linux还是其他支持Swift的平台编写应用,Guitar都能帮助你高效地处理字符串。这个库旨在增强和扩展Swift的标准字符串功能,让你在处理字符串时拥有更大的灵活性和便利性。 Guitar的...
这个名为“ios-DES加密,可用于加密中文,字符,请求数据的json串.zip”的资源包显然提供了关于如何在iOS应用中实现DES加密来处理中文、字符和JSON字符串的详细指南。 DES是一种块加密算法,它使用56位密钥对64位的...
1. `^` 表示匹配字符串的开始。 2. `(?![0-9]+$)` 这是一个负向零宽断言,确保字符串不全由数字组成。如果后续所有字符都是数字,则该位置的断言失败,整个表达式不会匹配。 3. `(?![a-zA-Z]+$)` 类似地,这个断言...
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配...
这些算法通过计算字符串之间的差异程度来确定匹配度。例如,Levenshtein距离会计算两个字符串之间最少需要多少次单字符编辑(插入、删除或替换)才能转换成彼此。在iOS开发中,我们可以利用这些算法来构建高效的模糊...
例如,`%c`代表一个字符,`%d`表示十进制整数,`%e`, `%f`, `%g`用于浮点数,`%o`为八进制数,`%s`表示字符串,`%x`代表十六进制数,`%p`用于指针,`%n`记录读取的字符数量,`%u`是无符号整数,`%[]`则用于匹配字符...