正则表达式是一个编程的艺术,很难调试,学习和理解,但强大的功能,仍吸引不少开发者编写正则表达式。让我们探索一下下面10个实际应用中的正则表达式。
1. 用户名正则表达式模式 ^[a-z0-9_-]{3,15}$ ^ # 行开始 [a-z0-9_-] # 匹配列表中的字符,a-z,0–9,下划线,连字符 {3,15} # 长度至少3个字符,最大长度为15 $ # 行结束
2. 密码正则表达式模式 ((?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20}) ( # 组开始 (?=.*d) # 必须包含一个数字 0-9 (?=.*[a-z]) # 必须包含一个小写字符 (?=.*[A-Z]) # 必须包含一个大写字符 (?=.*[@#$%]) # 必须包含一个列表中的特殊字符"@#$%" . # 检查所有字符串与前面的条件的匹配 {6,20} # 长度至少为6个字符,最大长度为20 ) # 组结束
3. 16进制颜色代码正则表达式模式 ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ ^ # 行开始 # # 必须包含一个"#"符号 ( # 组#1开始 [A-Fa-f0-9]{6} # 列表中的任意字符串,长度为6 | # ..或者 [A-Fa-f0-9]{3} # 列表中的任意字符串,长度为3 ) # 组#1结束 $ # 行结束
4. Email 正则表达式模式 ^[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$ ^ # 行开始 [_A-Za-z0-9-]+ # 必须以中括号中的字符为起始字符[],必须包含一个或多个(+) ( # 组#1开始 .[_A-Za-z0-9-]+ # 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+) )* # 组#1结束,这个组是可选的(*) @ # 必须包含一个"@"符号 [A-Za-z0-9]+ # 接下来是中括号内的字符[],必须包含一个或者多个(+) ( # 组 #2开始 – 一级TLD检查 .[A-Za-z0-9]+ # 接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+) )* # 组#2结束,这个组是可选的(*) ( # 组#3开始 – 二级TLD检查 .[A-Za-z]{2,} # 接下来是一个点"."和中括号内的字符[],最小长度为2 ) # 组#3结束 $ # 行结束
5. 图像文件扩展名正则表达式模式 ([^s]+(.(?i)(jpg|png|gif|bmp))$) ( # 组#1开始 [^s]+ # 必须包含一个或更多的任意字符(除了空格) ( # 组#2开始 . # 接下来是一个点"." (?i) # 忽略后边字符的大小写检查 ( # 组#3开始 jpg # 包含字符"jpg" | # ..或者 png # 包含字符"png" | # .. 或者 gif # 包含字符"gif" | # .. 或者 bmp # 包含字符"bmp" ) # 组#3结束 ) # 组#2结束 $ # 字符串的结束 ) # 组#1结束
6. IP地址正则表达式模式 ^([01]?dd?|2[0-4]d|25[0-5]).([01]?dd?|2[0-4]d|25[0-5]). ([01]?dd?|2[0-4]d|25[0-5]).([01]?dd?|2[0-4]d|25[0-5])$ ^ # 行开始 ( # 组#1开始 [01]?dd? # 可以是1到2个数字. 如果出现3个数字,必须以0或者1开始 # 例如 ([0-9],[0-9][0-9],[0-1][0-9][0-9]) | # ...或者 2[0-4]d # 以2开始,紧跟着是0-4,并且以任意数字结尾(2[0-4][0-9]) | # ...或者 25[0-5] # 以2开始,紧跟着是5,并且以0-5结尾 (25[0-5]) ) # 组#1结束 . # 接下来是点"." .... # 重复3次 (3x) $ # 行结束
7. 时间格式正则表达式模式 12-小时制时间正则表达式模式 (1[012]|[1-9]):[0-5][0-9](s)?(?i)(am|pm) ( # 组#1开始 1[012] # 以10,11,12开始 | # 或者 [1-9] # 以1,2,...9开始 ) # 组#1结束 : # 接下来是一个冒号 (:) [0-5][0-9] # 接下来是0..5和0..9,意思是00到59 (s)? # 接下来是一个空格(可选) (?i) # 下面的检查不区分大小写 (am|pm) # 接下来是AM或者PM24小时制时间正则表达式模式 ([01]?[0-9]|2[0-3]):[0-5][0-9] ( # 组#1开始 [01]?[0-9] # 以0-9,1-9,00-09,10-19开始 | # 或者 2[0-3] # 以20-23开始 ) # 组#1结束 : # 接下来是一个冒号(:) [0-5][0-9] # 接下来是0..5和0..9,意思是00到59 8. 日期格式 (dd/mm/yyyy) 正则表达式模式 (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)dd) ( # 组#1开始 0?[1-9] # 01-09或者1-9 | # ..或者 [12][0-9] # 10-19或者20-29 | # ..或者 3[01] # 30,31 ) # 组#1结束 / # 接下来是一个"/" ( # 组#2开始 0?[1-9] # 01-09或者1-9 | # ..或者 1[012] # 10,12 ) # 组#2结束 / # 接下来是一个"/" ( # 组#3开始 (19|20)dd # 19[0-9][0-9]或者20[0-9][0-9] ) # 组#3结束 9. HTML标签正则表达式模式 <("[^"]*"|'[^']*'|[^'">])*> < # 以"<"标签开始 ( # 组#1开始 "[^"]*" # 只允许两个双引号成对出现-"string" | # ..或者 '[^']*' # 只允许两个单引号成对出现- 'string' | # ..或者 [^'">] # 不能出现单独的双引号、单引号和">" ) # 组#1结束 * # 0次或多次 > # 以结束标签">"结束
10. HTML链接正则表达式模式 HTML中的A标签正则表达式模式 (?i)<a([^>]+)>(.+?)</a> ( # 组#1开始 ?i # 所有的检查区分大小写 ) # 组#1结束 <a # 以"<a"开始 ( # 组#2开始 [^>]+ # 除了(">")之外的任意字符,至少一个字符 ) # 组#2结束 > # 接下来是">" (.+?) # 匹配所有 </a> # 以"</a>结束提取HTML链接正则表达式模式 s*(?i)hrefs*=s*("([^"]*")|'[^']*'|([^'">s]+)); s* # 可以以空格开始 (?i) # 所有的检查是区分大小写的 href # 接下来是一个"href"字 s*=s* # 等号两边都允许空格,( # 组#1开始 "([^"]*") # 只允许2个双引号成对出现 - "string" | # ..或者 '[^']*' # 只允许2个单引号成对出现 - 'string' | # ..或者 ([^'">]+) # 或者不允许出现单独的单引号、双引号和">" ) # 组#1结束 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|