swift
swift中常用的正则表达式
基本字符 (单个字符)
类别 | 符号 |
大写字母 | ABCDEF...XYZ |
小写字母 | abcdef...xyz |
数字 | 0123456789 |
其他 | `~!@#%&;:'",<>/ |
转义方法 | 符号 |
双反斜杠转义 『\』 | $^*()-=+[{]}|.? |
三反斜杠转义 『\\』 | \ |
元字符 (单类字符)
| 符号 | 类别 |
| :--: | :---------------------------------------------------: |
| . | 除换行符外的任意字符 |
| \w | 字母、数字、下划线或汉字 |
| \s | 任意空白字符,包括换页符、换行符、回车符、制表符、空格 |
| \d | 数字 |
| \f | 换页符 |
| \n | 换行符 |
| \r | 回车符 |
| \t | 制表符 |
| \v | 垂直制表符 |
反义(元字)符
| 符号 | 类别 |
| :--: | :---------------------------: |
| \W | 非字母、数字、下划线或汉字 |
| \S | 非空白字符 |
| \D | 非数字字符 |
| ^ | 非后接的字符,可同时接多个字符 |
限定字符
贪婪限定字符
- 当匹配符合多种情况时优先字符数多的情况
字符串 :"123456789"
正 则 :"^\d+"
结 果 :123456789
符号 | 意义 |
* | 重复单字符或表达式零次以上(包括零次) |
+ | 重复单字符或表达式一次以上(包括一次) |
? | 重复单字符或表达式零或一次 |
{n} | 重复单字符或表达式n次 |
{n,} | 重复单字符或表达式n次以上(包括n次) |
{n,m} | 重复单字符或表达式n到m次 |
懒惰限定符
- 当匹配符合多种情况时优先字符数少的情况
字符串 :"123456789"
正 则 :"^\d+?"
结 果 :1
符号 | 意义 |
*? | 重复单字符或表达式零次以上(包括零次) |
+? | 重复单字符或表达式一次以上(包括一次) |
?? | 重复单字符或表达式零或一次 |
{n,}? | 重复单字符或表达式n次以上(包括n次) |
{n,m}? | 重复单字符或表达式n到m次 |
定位符
符号 | 意义 |
^ | 字符串的开始 |
$ | 字符串的结束 |
\b | 单词开始或结束 |
\B | 非单词开头或结束的字符 |
连接符
符号 | 意义 |
| | 用于连接两个字符或表达式,可理解为『或』 |
, | 用于连接两个字符,可理解为『或』 |
- | 用于选取一个字符域 |
分隔符
符号 | 意义 |
[] | 单字符分隔符 :对单字符进行分隔 |
() | 表达式分隔符 :对表达式进行分隔 |
{} | 限定符分隔符 :对限定符进行分隔 |
正则实例
| ^ | [a-z,A-Z,0-9]|{2,6} | $ |
| :--: | :------------------: | :--: |
| 首 | 2到6位字母或数字 | 尾 |
- 首字符为字母其余为字母或数字组成的6位及以上字符串
| ^ | [a-z,A-Z]{1} | [a-z,A-Z,\d]|{5,} | $ |
| :--: | :----------: | :-----------------: | :--: |
| 首 | 1位字母 | 5位及以上字母或数字 | 尾 |
| ^ | [A-Z,a-z,\d]+ | ([-.][A-Za-z\d]+)* | @ | ([A-Za-z\d]+[-.])+ | [A-Za-z\d]{2,4} | $ |
| :--: | :---------------: | :----------------------------: | :--: | :-----------------------------: | :--------------: | :--: |
| 首 | 0位以上数字或字母 | 0次以上(-.+0位以上数字或字母) | @ | 0次以上(0次以上数字或字母 + -.) | 2到4位数字或字母 | 尾 |
代码书写
/// 帐号
var acount = "339662012@qq.com"
/// 正则规则字符串
let pattern = "^[A-Z,a-z,\\d]+([-_.][A-Z,a-z,\\d]+)*@([A-Z,a-z,\\d]+[-.])+[A-Z,a-z,\\d]{2,4}"
/// 正则规则
let regex = try? NSRegularExpression(pattern: pattern, options: [])
/// 进行正则匹配
if let results = regex?.matches(in: acount, options: [], range: NSRange(location: 0, length: acount.count)), results.count != 0 {
print("帐号匹配成功")
for result in results{
let string = (acount as NSString).substring(with: result.range)
print("对应帐号:",string)
}
}
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:
2021/05/27 07:32