修饰符:
g:global(全局匹配)
i:ignore(不区分大小写)
m:multi line(多行匹配)
s:默认情况下特殊符号小数点“.”是代表除换行符以外的任意字符,加上该修饰符则能让“.”包括换行符
u:支持匹配Unicode码(主要针对多字节,如:汉字、emoji等)
元字符:
.(小数点):匹配除换行符以外的任意字符
\d:匹配一个数字字符,等价于[0-9]
\D:匹配一个非数字字符,等价于[^0-9]
\s:匹配任何空白字符,包括空格、换行符、制表符、换页符等等,等价于[\f\n\r\t\v]
\S:匹配任何非空白字符,等价于[^\f\n\r\t\v]
\w:匹配字母、数字、下划线,等价于[A-Za-z0-9_]
\W:匹配非字母、数字、下划线,等价于[^A-Za-z0-9_]
通配符(星号“*”和问号“?”):
匹配任意字符(不含空格):.*
匹配任意字符(包含空格):[\s\S]* 说明:“\s”和“\S”均为元字符,可参考上方的元字符说明。
贪婪匹配:.*
懒惰匹配:.*?
量词:
{n}:固定出现n次
{m,n}:最少出现m次,最多出现n次
{m,}:最少出现m次,最多可出现无穷多次
?(问号):出现0次或1次,等价于{0,1}
+(加号):出现1次或1次以上,等价于{1,}
*(星号):出现任意次,等价于{0,}
加不加“()”的区别:
如果只需要判断字符串是否匹配正则表达式(如判断邮箱格式是否合法等)那么不需要加,如果要从字符串中匹配并提取出特定内容则需要加。