同步操作将从 goflyfox/gfstudy 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
[2020-08-19 17:36:19.467][INFO][com.XXX4.Utils:83][Utils is call {name=白起,idcard=110111111114,phone=15311111114}]
2019-07-20
1999-05-05
2019-1-1
匹配日期规则:
正则1:\d{4}-\d{2}-\d{2}
正则2:[21]\d{3}-\d{1,2}-\d{1,2}
正则3:[21]\d{3}-[01]?\d-[0123]?\d
123 abc
ABC
匹配全内容和换行符
正则1:\d+\s\w+\r\nABC
正则2:.*
正则3:[\w|\W]*
123 abc
ABCW\*()
示例1:\d+\s\w+\r\nABCW\\\*\(\)
123 abc libang abc libang
正则1:\d+\s(\w+)\s\w+\s\w+\s\w+
正则2:\d+\s((\w+)\s)+\w+
正则3:\d+(\s[abc]+\s\w+)+
正则4:\d+\s((\w+)\s){1,3}\w+
正则5:^\d+\s((\w+)\s){1,3}\w+$
正则6:\babc\b
正则7:(\sabc\slibang)+?
正则8:(\sabc\slibang)+
正则9:(\sabc\slibang)+|123
aabab
正则1:a.*?b
正则2:a.*b
正则3:a.+?b
正则4:a.??b
22222zhuchongba@channelsoft.com11111zhuchongba
正则1(第一组):(\w+)@(?:\w+)\.(\w+)
正则2(使用第一组):(\w+)@(\w+)\.(\w+)\1
正则3(减少分组):(\w+)@(?:\w+)\.(\w+)
正则4(获取前面):(\w+)@(\w+)\.(\w+)(?=11111)
正则5(获取后面):(?<=22222)(\w+)@(\w+)\.(\w+)
正则6:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
字符集合 | 说明 |
---|---|
. | 小数点可以匹配除了换行符(\n)以外的任意一个字符 |
\w | 可以匹配任何一个字母或者数字或者下划线 |
\W | W大写,可以匹配任何一个字母或者数字或者下划线以外的字符 |
\s | 可以匹配空格、制表符、换页符等空白字符的其中任意一个 |
\S | S大写,可以匹配任何一个空白字符以外的字符 |
\d | 可以匹配任何一个 0~9 数字字符 |
\D | D大写,可以匹配任何一个非数字字符 |
转义符 | 说明 |
---|---|
\a | 响铃符 = \x07 |
\f | 换页符 = \x0C |
\n | 换行符 = \x0A |
\r | 回车符 = \x0D |
\t | 制表符 = \x09 |
\v | 垂直制表符 = \x0B |
\e | ESC 符 = \x1B |
\b | 单词的开头或结尾,也就是单词的分界处 |
\x20 | 使用两位十六进制表示形式,可与该编号的字符匹配 |
\u002B | 使用四位十六进制表示形式,可与该编号的字符匹配 |
\x{20A060} | 使用任意位十六进制表示形式,可与该编号的字符匹配 |
字符 | 说明 |
---|---|
^ | 匹配输入字符串的开始位置。要匹配 "^" 字符本身,请使用 "^" |
$ | 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,请使用 "$" |
( ) | 标记一个子表达式的开始和结束位置。要匹配小括号,请使用 "(" 和 ")" |
[ ] | 用来自定义能够匹配 '多种字符' 的表达式。要匹配中括号,请使用 "[" 和 "]" |
{ } | 修饰匹配次数的符号。要匹配大括号,请使用 "{" 和 "}" |
. | 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,请使用 "." |
? | 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,请使用 "?" |
+ | 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,请使用 "+" |
***** | 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,请使用 "*" |
| | 左右两边表达式之间 "或" 关系。匹配 "|" 本身,请使用 "|" |
限定符 | 说明 |
---|---|
{n} | 表达式固定重复n次,比如:"\w****{2}" 相当于 "\w\w" |
{m, n} | 表达式尽可能重复n次,至少重复m次:"ba**{1,3}**"可以匹配 "ba"或"baa"或"baaa" |
{m, } | 表达式尽可能的多匹配,至少重复m次:"\w\d****{2,}"可以匹配 "a12","x456"... |
? | 表达式尽可能匹配1次,也可以不匹配,相当于 {0, 1} |
+ | 表达式尽可能的多匹配,至少匹配1次,相当于 {1, } |
***** | 表达式尽可能的多匹配,最少可以不匹配,相当于 {0, } |
限定符 | 说明 |
---|---|
{m, n}? | 表达式尽量只匹配m次,最多重复n次。 |
{m, }? | 表达式尽量只匹配m次,最多可以匹配任意次。 |
?? | 表达式尽量不匹配,最多匹配1次,相当于 {0, 1}? |
+? | 表达式尽量只匹配1次,最多可匹配任意次,相当于 {1, }? |
*? | 表达式尽量不匹配,最多可匹配任意次,相当于 {0, }? |
限定符 | 说明 |
---|---|
{m, n}+ | 表达式尽可能重复n次,至少重复m次。 |
{m, }+ | 表达式尽可能的多匹配,至少重复m次。 |
?+ | 表达式尽可能匹配1次,也可以不匹配,相当于 {0, 1}+ |
++ | 表达式尽可能的多匹配,至少匹配1次,相当于 {1, }+ |
*+ | 表达式尽可能的多匹配,最少可以不匹配,相当于 {0, }+ |
代码/语法 | 说明 |
---|---|
(exp) | 匹配exp,并捕获文本到自动命名的组里 |
(?exp) | 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) |
(?:exp) | 匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
(?=exp) | 匹配exp前面的位置 |
(?<=exp) | 匹配exp后面的位置 |
(?!exp) | 匹配后面跟的不是exp的位置 |
(?<!exp) | 匹配前面不是exp的位置 |
(?#comment) | 这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读 |
正则引擎一般有:
以下为各种正则引擎通用语法:
\
转义单个元字符
[abc]
字符类
[^abc]
反义字符类
[a-z]
字符类范围
.
匹配换行符(\n
)外所有字符
^
字符串/行开始
$
字符串/行结束
|
分支条件
?
0 ~ 1 次
*
0 次或更多次
+
1 次或更多次
{n}
n 次
{n,m}
n ~ m 次
{n,}
n 次或更多次
量词后加 ?
转为懒惰模式
(regex)
编号捕获组;\1
~ \9
后向引用;
\d
代表数字 或 [:digit:]
- 数字: '0 1 2 3 4 5 6 7 8 9'
\w
代表单词字符 或 [:alpha:]
- 字母字符
\s
代表空白字符 或 [:blank:]
- 空字符: 空格键符 和 制表符
注:编程语言一般都是\d,linux系统命令基本都是[:digit:]
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$
零和非零开头的数字:^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$
正数、负数、和小数:^(-|+)?\d+(.\d+)?$
有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]$
非零的负整数:^-[1-9][]0-9"$ 或 ^-[1-9]\d$
非负整数:^\d+$ 或 ^[1-9]\d*|0$
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负浮点数:^\d+(.\d+)?$ 或 ^[1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$
非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$
正浮点数:^[1-9]\d*.\d*|0.\d*[1-9]\d*$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
负浮点数:^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$
浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$
汉字:^[\u4e00-\u9fa5]{0,}$
英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
长度为3-20的所有字符:^.{3,20}$
由26个英文字母组成的字符串:^[A-Za-z]+$
由26个大写英文字母组成的字符串:^[A-Z]+$
由26个小写英文字母组成的字符串:^[a-z]+$
由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
可以输入含有^%&',;=?$"等字符:[^%&',;=?$\x22]+ 12 禁止输入含有的字符:[^\x22]+
Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^((\d{3,4}-)|\d{3.4}-)?\d{7,8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份证号(15位、18位数字):^\d{15}|\d{18}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$
中文字符的正则表达式:[\u4e00-\u9fa5]
双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
空白行的正则表达式:\n\s*\r (可以用来删除空白行)*
HTML标记的正则表达式:<(\S?)[^>]>.?</\1>|<.? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
首尾空白字符的正则表达式:^\s|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
IP地址:\d+.\d+.\d+.\d+ (提取IP地址时有用)
IP地址:((?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。