Java正则匹配学习:每日力扣学习

Java 正则表达式

首先,正则表达式定义了字符串的模式,用于匹配输入的字符串是否与我们想要的格式相同。

语法:
基本语法可以看:
官方语法
但是我想把用过的 总结一下
对于单个符号:

  • 英文句点.符号:匹配单个任意字符; 表达式t.o
    可以匹配:tnot#oteo等等。不可以匹配:tnnotoTnot哈o等。
  • 中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符;表达式:t[abcd]n 只可以匹配:tantbntcntdn。不可以匹配:thntabntn
  • | 符号。“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配;表达式:t(a|b|c|dd)n 只可以匹配:tantbntcntddn。不可以匹配taantntabcn等。
  • 表示匹配次数的符号
符号次数
*0次 或 多次
+1次 或 多次
0次 或 一次
{n}恰好n次
{n,m}从n次到m次

表达式:[0—9]{ 3 } \— [0-9]{ 2 } \— [0-9]{ 3 } 的匹配格式为:999—99—999
因为—符号在正则表达式中有特殊的含义,它表示一个范围,所以在前面加转义字符\

  • ^符号:表示否,如果用在方括号内,^表示不想匹配的字符;表达式:[^x] 第一个字符不能是 x;或者^ 定义了以什么开始
  • \S符号:非空字符
  • \s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。
  • \r符号:空格符,与\n\tab相同

对于快捷符号:

1、\d表示[0—9]
2、\D表示[^0—9]
3、\w表示[0—9A—Z_a—z]
4、\W表示[^0—9A—Z_a—z]
5、\s表示[\t\n\r\f]
6、\S表示[^\t\n\r\f]

^ ”:匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与”\n”或”\r”之后的位置匹配(即匹配每一行的开始);

$ ” :匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与”\n”或”\r”之前的位置匹配(即匹配每一行的结束)。

常用正则表达式:

  • ^\d+$ :非负整数(正整数 + 0)
  • ^[0-9]*[1-9][0-9]*$ :正整数
  • ^((-\d+)|(0+))$ :非正整数(负整数 + 0)
  • ^-[0-9]*[1-9][0-9]*$ :负整数
  • ^-?\d+$ :整数
  • ^\d+(\.\d+)?$ :非负浮点数(正浮点数 + 0)
  • ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
    :正浮点数
  • ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ :非正浮点数(负浮点数 + 0)
  • ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
    :负浮点数
  • ^(-?\d+)(\.\d+)?$ :浮点数
  • ^[A-Za-z]+$ :由26个英文字母组成的字符串
  • ^[A-Z]+$ :由26个英文字母的大写组成的字符串
  • ^[a-z]+$ :由26个英文字母的小写组成的字符串
  • ^[A-Za-z0-9]+$ :由数字和26个英文字母组成的字符串
  • ^\w+$ :由数字、26个英文字母或者下划线组成的字符串
  • ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ :email地址
  • ^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ :url
  • /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/
    :年-月-日
  • /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/
    :月/日/年
  • ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$
    :Emil
  • /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/
    :电话号码
  • ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$
    :IP地址
  • 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
  • 匹配双字节字符(包括汉字在内):[^\x00-\xff]
  • 匹配空行的正则表达式:\n[\s| ]*\r
  • 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
  • 匹配首尾空格的正则表达式:(^\s*)|(\s*$)
  • 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
  • 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
  • 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  • 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
  • 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
  • sql语句:^(select|drop|delete|create|update|insert).*$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值