常用的元字符
简单示例
0\\d\\d-\\d\\d\\d\\d\\d\\d\\d\\d
0\\d{2}-\\d{8}
匹配以0开头,后面跟着两个数字-8个数字 的电话号码.
分枝条件(或)
|
如:
0\\d{2}-\\d{8}|0\\d{3}-\\d{7}
就可以匹配 012-12345678或者0123-1234567 之类的号码
分组(){}
(\\d{1,3}\\.){3}\\d{1,3}
上面的意思是匹配一个1-3位数的数字且后面加个点 比如: 123. 重复三次如 123.1.2. 最后后面再跟上一个1-3位数字.
常用的反义代码
贪婪与懒惰
注意:正则表达式有另一条规则,比懒惰/贪婪规则的优先级更高:最先开始的匹配拥有最高的优先权——The match that begins earliest wins。
懒惰限定符
常用正则表达式
- 匹配中文字符
[\\u4e00-\\u9fa5]
- 匹配双字节字符(包括汉字在内)
[^\\x00-\\xff]
- 匹配空白行
\\n\\s*\\r
- 匹配Email地址
[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?
- 匹配网址URL
[a-zA-z]+://[^\\s]*
- 匹配国内电话号码
\\d{3}-\\d{8}|\\d{4}-\\{7,8}
- 匹配腾讯QQ号
[1-9][0-9]{4,}
- 匹配中国邮政编码
[1-9]\\d{5}(?!\\d)
- 匹配18位身份证号
^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$
- 匹配(年-月-日)格式日期
([0-9]{3}[1-9]|[0-9]{2}1-9{1}|[0-9]{1}1-9{2}|1-9{3})-(((0[13578]|1[02])-(0[1-9]|12|3[01]))|((0[469]|11)-(0[1-9]|12|30))|(02-(0[1-9]|1|2[0-8])))
- 匹配正整数
^[1-9]\\d*$
- 匹配负整数
^-[1-9]\\d*$
- 匹配整数
^-?[1-9]\\d*$
- 匹配非负整数(正整数 + 0)
^[1-9]\\d*|0$
- 匹配非正整数(负整数 + 0)
^-[1-9]\\d*|0$
- 匹配正浮点数
^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$
- 匹配负浮点数
^-[1-9]\\d*\\.\\d*|-0\\.\\d*[1-9]\\d*$
- 匹配版本号
\\d+(\\.\\d+){0,2}
{0,2}表示重复字数,改成*不限次数.根据需要,^判断起始位置,$判断结尾.如(仅匹配0.0.0格式):
^\\\\d+(\\\\.\\\\d+){2}$