Java 正则表达式

怎么用?

实例

 Pattern p = Pattern.compile("a*b");
 Matcher m = p.matcher("aaaaab");
 boolean b = m.matches();

简便实例(三合一)

 boolean b = Pattern.matches("a*b", "aaaaab");

常见符号(转义字符要双转)

符号符号解释以及使用方法
\d数字(0-9)
\D非数字
\s空白字符(\t\n\x0B\f\r)
\S非空白字符
\w大小写字母、数字、下划线
\W\w对立面
*至少出现0次
+至少出现1次
.匹配除了换行符和空字符串之外所有
出现0次或者1次
{n}出现n次
{n,}至少出现n次
{n,m}出现n-m次
^以什么开头 例如:^a 以a开头 。否 例如:[^0-9] 不出现0-9
$以什么结尾 例如:a$ 以a结尾

常用的正则表达式

表达式解释
[u4e00-u9fa5]匹配汉字
[^\x00-\xff]双字节字符
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}匹配中文、英文字母、数字和下划线(4到10位)
[\u4e00-\u9fa5_a-zA-Z0-9]+$匹配中文、英文字母、数字和下划线(长度随意)

ps:由于代码冲突, 接下来不使用表格。

         * 部分邮箱的正则表达式
		 * ^[a-zA-Z0-9][\\w.-]*@[\\w.-]*\\.([a-zA-Z]+${2,3})
		 * 包含是数字、汉子、字母、下划线、但不以下划线结尾的正则表达式(伪变量)
		 * ^(?!_)(?!.*?_$)[a-zA-Z0-9_\\u4e00-\\u9fa5]+$ 
		 * 手机号码的正则表达式(不严谨)
		 * ^[1]([3-9])[0-9]{9}$ 
		 * QQ号的正则表达式 
		 * [1-9][0-9]{5,11} 
		 * PS:正则表达式是规则的”化身“,根据规则写正则表达式。

补充

从混乱的文字中提取我想要的东西(爬取数据后的清洗)

String info = "蛇年大吉的舒适度8615155758979圣诞节活动时间的时候15155758978是见好就收地方黄金时代机会15155758977";
		Pattern pattern = Pattern.compile("(86)?[1][3-9]([0-9]{9})");// (86)出现与否都可、1开头,第二位是3-9,剩下9位是数字
		Matcher matcher = pattern.matcher(info);
		while (matcher.find()) { // find查找与正则匹配的下一个子序列
			String phone = matcher.group(); // group返回所find查找所匹配的子序列
			System.out.println("爬取一个手机号:" + phone);
		}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值