+ 代表前面的字符必须至少出现一次
? 通配0个或1个字符
* 通配0个或多个字符
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结尾位置
{n} 匹配确定的n次 o{2} 不能匹配Bob 可以匹配food
\b 匹配一个单词边界,即字与空格间的位置
\B 非单词边界
\w+ == [a-zA-Z0-9_] 匹配数字字母下划线和加号的多个字符
var patt1 = /\b([a-z]+) \1\b/ig;
g == 后面的全局标记g指定将该表达式应用到输入字符串中能够查找到的尽可能多的匹配
i == 结尾处的i标记指定不区分大小写
\cx
匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
句点(.)匹配字符串中的各种打印或非打印字符,只有一个例外 换行符(\n)
电子邮件:r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+"
URL:'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'