正则表达式概念

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表过式用于操作字符串数据。
String类里有一个方法
public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。
参数: regex - 用来匹配此字符串的正则表达式
返回: 当且仅当此字符串匹配给定的正则表达式时,返回 true
符号简介:
\\匹配反斜线字符
\r匹配回车符
\t匹配制表符
\f匹配换页符
\n匹配换行符
[abc]匹配abc中的一个
[^abc]匹配除了abc中的一个
[a-z]匹配指定范围内的任意一个字符,例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
[A-Z]匹配指定范围内的任意一个字符,例如,“[A-Z]”可以匹配“A”到“Z”范围内的任意大写字母字符。
[a-d[m-p]] 匹配[a-d m-p]并集 //abcd mnop中的一个
[a-z&&[^bc]]匹配[ad-z]范围内的任意字符//取a-z中的任意但不能取bc
[a-z&&[^m-p]]匹配[a-l q-z]范围内的任意字符//取a-z中的任意但不能取mnop
[a-z&&[def]]匹配def交集中的任意字符
. 匹配除“\r\n”之外的任何单个字符
\d 匹配一个数字字符。等价于[0-9]
\D 匹配一个非数字字符。等价于[^0-9]
\s 匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]
\S 匹配任何可见字符。等价于[^\f\n\r\t\v]
\w 匹配单词字符:等价于[a-zA-Z_0-9]
\W 匹配任何非单词字符。等价于[^A-Za-z0-9_]
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
\b 匹配一个单词边界
\B 匹配非单词边界
? 匹配一次或一次没有
* 匹配0次或多次
+ 匹配1次或多次
{n} 匹配恰好n次
{n,} 匹配至少n次
{n,m} 匹配至少n次,但不能超过m次匹配
\1 后向引用,表示表达式中,从左往右数,第一个左括号对应的括号内的内容。以此类推,\2表示第二个,\0表示整个表达式
使用String类中的matches方法 例子:匹配手机号码是否正确
public class RegDemo{
public static void main(String[] args) {
String tel="13800001111";
String reg="1[358]\\d{9}"; //1[358][0-9]{9}
boolean b=tel.matches(reg);
System.out.println(tel+":"+b);
}
}
切割:使用String类中的split方法例子: 切割字符串
public class RegDemo{
public static void main(String[] args) {
String str1="wang_yu_hang";
String str2="zhao fei ";
String str3="tang.chun.lai";
String [ ] strarr1=str1.split("_");
String [ ] strarr2=str2.split(" +");
String [ ] strarr3=str3.split("\\.");
for(String str:strarr1){
System.out.println(str);
}
}
}
替换:使用String类中的replaceAll方法例子:替换字符串
public class RegDemo{
public static void main(String[] args) {
String str="helloworld";
str=str.replaceAll("o","xx");
System.out.println(str);
String ss = "tel12344556qq4564654add4646767";
ss= ss.replaceAll("\\d{4,}", "#"); //4个或4个以上的数字连在一起的换成#
System.out.println(ss);
}
}
叠词替换:想要替换重复出现的单词,例如aa bbb cccc 任何的单词都有可能重复,所以使用 .(点)匹配任意字符.然后使用() 括号将该单词封装到组中. 为了重复使用某些规则就将规则封装为了组.使用()\1 1 是组号,\1引用了组.就是组中是什么这个位置也是什么.取值时,使用$1取第一个括号(组)中的值,以此类推。
获取: 其实使用的是java.util.regex.Pattern 类; java.util.regex.Matcher 类
Matcher类中的常用方法 :
public boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。
public String group() 返回由以前匹配操作所匹配的输入子序列。
public int start() 返回以前匹配的初始索引。
public int end() 返回最后匹配字符之后的偏移量。
例子:获取字符串
public class RegDemo{
public static void main(String[] args){
Pattern p = Pattern.compile(“a*b”); //将正则表达式进行对象封装
Matcher m = p.matcher(“aaaaab”);//用正则表达式的方法matcher和字符串关联,获取对字符串操作的匹配对象
Matcher boolean b = m.matches();//通过Mather匹配器对象的方法对字符串进行操作
System.out.println(b); //匹配返回true,不匹配则返回false
}
}
# java
# 正则表达式
# 详解Java判断是否是整数
# 小数或实数的正则表达式
# Java使用正则表达式对注册页面进行验证功能实现
# java正则表达式四种常用的处理方式(匹配、分割、替代、获取)
# 实例解析Java程序中正则表达式的贪婪模式匹配
# Java编程中正则表达式的用法总结
# java常用正则表达式
# 类中
# 第一个
# 以此类推
# 的是
# 组中
# 都有
# 换页
# 下一
# 第二个
# 英语
# 就将
# 将该
# 不能超过
# 与该
# 是否正确
# 有一个
# 后向
# 往右
# 重复使用
相关文章:
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
如何用花生壳三步快速搭建专属网站?
建站主机类型有哪些?如何正确选型
模具网站制作流程,如何找模具客户?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
建站之星展会模版如何一键下载生成?
如何快速搭建高效可靠的建站解决方案?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何正确下载安装西数主机建站助手?
淘宝制作网站有哪些,淘宝网官网主页?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
创业网站制作流程,创业网站可靠吗?
平台云上自主建站:模板化设计与智能工具打造高效网站
如何在阿里云香港服务器快速搭建网站?
网站制作公司排行榜,抖音怎样做个人官方网站
Python文件管理规范_工程实践说明【指导】
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
建站之星安装后界面空白如何解决?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何快速建站并高效导出源代码?
如何在腾讯云服务器上快速搭建个人网站?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
网站制作企业,网站的banner和导航栏是指什么?
如何快速完成中国万网建站详细流程?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何撰写建站申请书?关键要点有哪些?
建站之星如何快速生成多端适配网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
已有域名和空间如何搭建网站?
网站制作难吗安全吗,做一个网站需要多久时间?
建站之星如何快速解决建站难题?
如何通过智能用户系统一键生成高效建站方案?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
如何在万网ECS上快速搭建专属网站?
黑客入侵网站服务器的常见手法有哪些?
建站之星伪静态规则如何设置?
建站主机选哪种环境更利于SEO优化?
建设网站制作价格,怎样建立自己的公司网站?
Swift中swift中的switch 语句
如何在阿里云虚拟主机上快速搭建个人网站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
建站主机如何选?高性价比方案全解析
网站制作壁纸教程视频,电脑壁纸网站?
如何快速打造个性化非模板自助建站?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何通过WDCP绑定主域名及创建子域名站点?
网站app免费制作软件,能免费看各大网站视频的手机app?
*请认真填写需求信息,我们会在24小时内与您取得联系。