JavaBasic_正则表达式
就是符合一定规则的字符串 规则字符在java.util.regex.Pattern类中
字符转义
\. 匹配.字符
\* 匹配*字符
\\ 匹配\字符
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
字符类
[abc] -- a、b 或 c(简单类) 只匹配其中的单个字符 两个是不匹配的 比如 ab 是不匹配的
[^abc]-- 任何单个字符,除了 a、b 或 c(否定)
[a-zA-Z]-- a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9]-- 0到9的字符都包括
常用的元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
A) 在正则表达式 单词组成 必须有这些东西组成
B) 在英文字符下, 相当于 [a-zA-Z_0-9]
\s 匹配任意的空白符
\d 匹配数字
\b 单词边界 就是不是单词字符的地方。 就是说不是\w 不是数字, 字母, 连接字符 或者汉字
举例:hello world?haha;xixi
^ 匹配字符串的开始
$ 匹配字符串的结束
^\d{5,12}$ 匹配5-12个连续的数字, 但字符串的长度可以超过12个
\d{5,12} - 匹配5-12个连续的数字,只剩5个连续的数字, 最多12个连续的数字
重复字符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次 (重复0次 就是前面的字符可以不出现, 一次就是出现一次)
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常见功能:(分别用的是谁呢?)
A: 判断功能
String类的public boolean matches(String regex)
B: 分割功能
String类的public String[] split(String regex)
C: 替换功能
String类的public String replaceAll(String regex,String replacement)
D: 获取功能 Pattern和Matcher
模式和匹配器的基本使用顺序
// 把正则表达式 编译成模式对象
Pattern p = Pattern.compile("a*b");
// 通过模式对象得到匹配器对象, 这个时候需要传递的是被匹配的字符串
Matcher m = p.matcher("aaaaaab");
// 调用匹配器对象的功能
boolean b = m.matches();
public boolean find() - 查找是否存在符合规则的子序列
public String group(int group) - 返回匹配的子序列, 每次只返回第一次匹配的子序列, 后面以次类推。
IllegalStateException- 如果没有尝试任何匹配,或者以前的匹配操作失败。
IndexOutOfBoundsException- 如果在给定索引的模式中不存在捕获组。
注意: 在使用group之前必须先调用find()方法, 否则抛出 IllegalStateException 异常
// 循环打印出符合规则的子序列
while(m1.find()){
System.out.println(m1.group());
}
(4) 案例
A: 判断电话号码和邮箱
B: 按照不同的规则分割数据
C: 把论坛中的数字替换为 * String regex = "\\d+" or String regex = "\\d";
D: 获取字符串中由3个字符组成的单词 String regex = "\\b\\w{3}\\b";
JavaBasic_正则表达式的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
随机推荐
- C++ #和##运算符
原文:https://blog.csdn.net/mitu405687908/article/details/51084441 #和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它 ...
- 机器学习之决策树_CART算法
目录 3.CART算法(classification and regression tree tree) 3.1 CART生成算法(回归树生成和分类树生成) 3.2 CART剪枝 决策树基本知识参考, ...
- sublim 配置 用户默认绑定的格式化文本快捷键
//在绑定用户绑定配置中 加入 激活每个字母提示! "auto_complete": true,"auto_match_enabled": true, &q ...
- QANet
Reading Comprehension(RC) 阅读理解对于机器来说, 是一项非常艰巨的任务.google提出QANet, 目前(2018 0505)一直是SQuAD的No. 1. 今天简单地与大 ...
- SSH免密码登录教程
在一些受信任的环境中配置免密码登录,是比较方便的:而对于ansible等自动化工具配置免密码登录更是必要的. 免密码登录的要点就是,把想让服务器信任的客户机的公钥发送到服务器. 当客户机连接服务器时直 ...
- 在 NLTK 中使用 Stanford NLP 工具包
转载自:http://www.zmonster.me/2016/06/08/use-stanford-nlp-package-in-nltk.html 目录 NLTK 与 Stanford NLP 安 ...
- learning makefile grammar
- OC学习笔记
备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! ARC单例模式的实现 使用alloc方法初始化一个类的实例的时候,默认是调用了 allocWit ...
- SharePoint REST API - 使用REST API和jQuery上传一个文件
博客地址:http://blog.csdn.net/FoxDave 本篇主要通过两个代码示例来展示如何应用REST API和jQuery上传文件到SharePoint. 示例会使用REST接口和j ...
- DoTween的用法
using UnityEngine;using System.Collections;using DG.Tweening;using UnityEngine.UI; public class Test ...