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