swift中常用的正则表达式

/ Mac / 没有评论 / 1648浏览

swift中常用的正则表达式

基本字符 (单个字符)

类别符号
大写字母ABCDEF...XYZ
小写字母abcdef...xyz
数字0123456789
其他`~!@#%&;:'",<>/
转义方法符号
双反斜杠转义 『\』$^*()-=+[{]}|.?
三反斜杠转义 『\\』\

元字符 (单类字符)

| 符号 | 类别 | | :--: | :---------------------------------------------------: | | . | 除换行符外的任意字符 | | \w | 字母、数字、下划线或汉字 | | \s | 任意空白字符,包括换页符、换行符、回车符、制表符、空格 | | \d | 数字 | | \f | 换页符 | | \n | 换行符 | | \r | 回车符 | | \t | 制表符 | | \v | 垂直制表符 |

反义(元字)符

| 符号 | 类别 | | :--: | :---------------------------: | | \W | 非字母、数字、下划线或汉字 | | \S | 非空白字符 | | \D | 非数字字符 | | ^ | 非后接的字符,可同时接多个字符 |

限定字符

贪婪限定字符

符号意义
*重复单字符或表达式零次以上(包括零次)
+重复单字符或表达式一次以上(包括一次)
?重复单字符或表达式零或一次
{n}重复单字符或表达式n次
{n,}重复单字符或表达式n次以上(包括n次)
{n,m}重复单字符或表达式n到m次

懒惰限定符

符号意义
*?重复单字符或表达式零次以上(包括零次)
+?重复单字符或表达式一次以上(包括一次)
??重复单字符或表达式零或一次
{n,}?重复单字符或表达式n次以上(包括n次)
{n,m}?重复单字符或表达式n到m次

定位符

符号意义
^字符串的开始
$字符串的结束
\b单词开始或结束
\B非单词开头或结束的字符

连接符

符号意义
|用于连接两个字符或表达式,可理解为『或』
,用于连接两个字符,可理解为『或』
-用于选取一个字符域

分隔符

符号意义
[]单字符分隔符 :对单字符进行分隔
()表达式分隔符 :对表达式进行分隔
{}限定符分隔符 :对限定符进行分隔

正则实例

| ^ | [a-z,A-Z,0-9]|{2,6} | $ | | :--: | :------------------: | :--: | | 首 | 2到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)
    }
}