正则表达式
什么是正则表达式
正则表达式是用字符序列来描述复杂查询条件的方式。
匹配所有的数字
1 | ^[0-9]+$ |
表达式说明:
^
- 表示一行的开始[0-9]
- 匹配介于0-9中间的任何数字;也可以用\d
来代替+
- 匹配前面表达式的一个或者多个实例$
- 表示一行的结束
不同语言实现正则表达式
C#语言下实现
1 | using System; |
Python语言下实现
1 | import re |
C++语言下实现
1 |
|
匹配年份
1 | \b(19|20)\d{2}\b |
表达式说明:
\b
- 单词边界(19|20)
- 匹配19或者20数字\d{2}
- 两位数字,与[0-9]{2}
相似\b
- 单词边界
匹配时间
1 | \b([01]?[0-9]|2[0-3]):([0-5]\d)\b |
\b
- 单词边界[01]
- 0 或者 1?
- 表示前面的条件或者模式是可选的[0-9]
- 匹配0-9的所有数字|
- 或者2[0-3]
- 20、21、22、23:
- 匹配:
字符[0-5]
- 匹配0-5之间的数字\d
- 匹配0-9之间的所有数字\b
- 单词边界
匹配日期
1 | \b(0?[1-9]|[12]\d|3[01])([\/\-])(0?[1-9]|1[012])\2(\d{4}) |
DAY/MONTH/YEAR
表达式说明:
(0?[1-9]|[12]\d|3[01])
- 匹配1-31之间的任何数字,首字符可以是0([\/\-])
- 匹配所有的分隔符/
或者-
(0?[1-9]|1[012])
- 匹配所有的1-12之间的字符\2
- 匹配分组\d{4}
- 匹配任何四位数字
验证邮箱
1 | ^[^@\s]+@[^@\s]+\.\w{2,6}$ |
表达式说明:
^
- 输入开始[^@\s]
- 匹配除了所有的字符除了@
和空格\s
+
- 1+次@
- 匹配@
标志[^@\s]+
- 匹配除了所有的字符除了@
和空格\s
; 1+次\.
- 匹配’.’字符\w{2,6}
- 匹配任何字符,2-6次$
- 输入结束
匹配URL
1 | (https?:\/\/)(www\.)?(?<domain>[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6})(?<path>\/[-a-zA-Z0-9@:%_\/+.~#?&=]*)? |
表达式说明:
(https?:\/\/)
- 匹配http或者https(www\.)?
- 匹配’www’前缀(可选)(?<domain>[-a-zA-Z0-9@:%._\+~#=]{2,256}
- 匹配有效的域名\.[a-z]{2,6})
- 匹配域名后缀(?<path>\/[-a-zA-Z0-9@:%_\/+.~#?&=]*)?
- 匹配URL路径(/posts), 查询字符条件(?limit=1), and/or 文件后缀(.html), 全可选.