正则表达式
(<(\w+)\s{0,}.{0,}>.*<\/\2>)|<.+\/>|<\!--.*-->|\n\/\/.*|\/\*[^]*\*\/
((.*[^\w-\n]{1,})|(\n\s*))\/\/.*
((.*[^\w-\n-']{1,})|(\n\s*))\/\/.*
//抽取匹配 oc
(?<=('VerificationToken'\\s{0,100}:\\s{0,100}')).*(?=')
// 匹配标签 //let s="''Veri<script href=\"namfhgdffgde\" >dfsfsdf</script> <a href=\"aaa22342342424\" src=\"大得多\" >icationT</a><a href=\"dsfsd\">okenfdsfds</a>':'8xZO09tMacKaNMP2NG5divkND23_cXmeMJusrX-yTifkxXzmXWZeCgEPkVnrTe_LHGkMkOu8dgOUck9oJulm9RzMTnI1:C25AUNMSKBK_7Ig6q_IpakRtmvq6hPka5ZqBpxkXAW4LdtMUrVoNx17wfDw4oidOLBtbM_V-XdhEJSRJcLkxRpskKZc1'222"; //let range=s.rangeOfString("(?<=<(\\w{1,10})\\s{1,100}href\\s{0,100}=\\s{0,100}\")([^\"])*(?=\"\\s{1,100}.*>.*</\\1>)", options: .RegularExpressionSearch)//.*(?=\"\\s{1,100}.*>.*<\\/a> \\s{0,100}\\s{0,100}=\\s{0,100}\" //let ss=s[range!] // //println(ss)
// 反斜杠
/t 间隔 ('/u0009')
/n 换行 ('/u000A')
/r 回车 ('/u000D')
/d 数字 等价于[0-9]
/D 非数字 等价于[^0-9]
/s 空白符号 [/t/n/x0B/f/r]
/S 非空白符号 [^/t/n/x0B/f/r]
/w 单独字符 [a-zA-Z_0-9]
/W 非单独字符 [^a-zA-Z_0-9]
/f 换页符
/e Escape
/b 一个单词的边界
/B 一个非单词的边界
/G 前一个匹配的结束
^为限制开头
^java 条件限制为以Java为开头字符
$为限制结尾
java$ 条件限制为以java为结尾字符
. 条件限制除/n以外任意一个单独字符
java.. 条件限制为java后除换行外任意两个字符
加入特定限制条件「[]」
[a-z] 条件限制在小写a to z范围中一个字符
[A-Z] 条件限制在大写A to Z范围中一个字符
[a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符
[0-9] 条件限制在小写0 to 9范围中一个字符
[0-9a-z] 条件限制在小写0 to 9或a to z范围中一个字符
[0-9[a-z]] 条件限制在小写0 to 9或a to z范围中一个字符(交集)
[]中加入^后加再次限制条件「[^]」
[^a-z] 条件限制在非小写a to z范围中一个字符
[^A-Z] 条件限制在非大写A to Z范围中一个字符
[^a-zA-Z] 条件限制在非小写a to z或大写A to Z范围中一个字符
[^0-9] 条件限制在非小写0 to 9范围中一个字符
[^0-9a-z] 条件限制在非小写0 to 9或a to z范围中一个字符
[^0-9[a-z]] 条件限制在非小写0 to 9或a to z范围中一个字符(交集)