Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于java的正则表达式

基于java的正则表达式

作者头像
HUC思梦
发布于 2020-09-03 01:58:46
发布于 2020-09-03 01:58:46
7770
举报

正则表达式概念 正则表达式,又称正规表示法、常规表示法(英语: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次匹配

(?i) 表示所在位置右侧的表达式开启忽略大小写模式 (?-i) 表示所在位置右侧的表达式关闭忽略大小写模式 \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 } }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java中正则表达式的使用
java中正则表达式匹配,主要使用api中的个类:Pattern、Matcher、PatternSyntaxException
青山师
2023/05/05
4520
RegularExpressions——正则表达式
用途 字符串匹配(字符匹配) 字符串查找 字符串替换 例如: IP地址是否正确 从网页中揪出email地址 从网页中揪出链接等 类 java.lang.String java.util.regex.Pattern java.util.regex.Matcher 初识正则表达式 import java.util.regex.*; public class TestReg { public static void main(String[] args) { p("abc".matc
mathor
2018/08/03
3540
正则表达式(一)
该文介绍了如何利用正则表达式进行字符串处理的一些基本应用。包括字符串匹配、分割、替换等。还介绍了String类中自带的一些正则表达式方法,如matches、split、replace等。
codingblock
2017/12/29
6270
java用正则表达式大全_Java 正则表达式 大全「建议收藏」
正则表达式的定义:这是一种字符串的语法规则,是一种可以用于模式匹配和替换的规则,主要用于文本和字符串的处理(匹配,查找,替换,判断字符串)。一个正则表达式是由普通的字符(a~z)以及特殊字符(元字符)组成的文字模式,用以描述在查找文字主体时待匹配的一个或多个字符串。下面我们会介绍一些常用的元字符
全栈程序员站长
2022/09/09
7120
java正则表达式
正则表达式是一种用于匹配字符串的工具,Java提供了一套强大的正则表达式API,可以让我们方便地使用正则表达式进行字符串操作。本文将详细介绍Java正则表达式的使用方法,包括语法、常用方法、示例等内容。
堕落飞鸟
2023/04/03
1.1K0
Java中正则表达式
PS:更多其他符号,可参照 http://www.cnblogs.com/Mustr/p/6057159.html
会说话的丶猫
2021/03/09
4810
【愚公系列】Java教学课程 042-正则表达式
正则表达式(Regular Expression,简称Regex或RegExp)是一个用来描述、匹配、搜索某个文本或字符串的规则或模式。它通常由一些特定的字符和操作符组成,可以用来匹配和过滤各种文本信息。正则表达式可以用于实现文本的查找、替换、过滤、验证等操作,是编程和数据处理领域中非常有用的工具。
愚公搬代码
2025/06/01
1060
Java正则表达式匹配日期及基本使用
在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
AlbertYang
2020/09/08
5.8K0
Java基础——正则表达式与基础类应用
组捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
阿Q说代码
2021/05/13
5120
java正则表达式解析「建议收藏」
学习正则表达式,我觉得还是要循循渐进,由易到难,一点点深入……(本人也在学习中这里提供个人理解思路,以及一些大神们的独到讲解。。。。。。)
全栈程序员站长
2022/09/09
1.4K0
java正则表达式解析「建议收藏」
【Java】正则表达式
文章目录 参考文档 调用 regex String方法也行 匹配单个字符 匹配多个字符 类型比较 贪婪 勉强 占有 组 逻辑或 边界运算符 电话号 匹配城市 邮箱 端口号 参考文档 JavaSE Doc 调用 regex package regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Author bennyrhys * @Date 2/7/21 2:24 PM */ public clas
瑞新
2021/12/06
6980
【Java】正则表达式
Java类库之正则表达式(重点)
但是现在一个简单的问题就出现了,这个验证应该算是不难的,但是面对这样一个不麻烦的验证,代码写了9行代码,如果是一些更为复杂的验证呢?那么对于整体操作就更加的麻烦了,现在有另外一种做法:
葆宁
2019/04/18
6080
Java类库之正则表达式(重点)
java正则表达式保姆级教程,从小白到高手
正则表达式看似简单,实则门路颇多,究其原因也就是其太灵活了。完全掌握还是需要耗费一些功夫的。
程序员田同学
2021/12/31
4190
java正则表达式保姆级教程,从小白到高手
编程笔记_JAVA_正则表达式工具
java.util.regex.Pattern; //模式类:字符串要被匹配的模式
陈黎栋
2020/02/17
1K0
爬虫大佬,把他总结的正则表达式使用给我了!
正则引擎主要可以分为两大类:一种是DFA,一种是NFA。这两种引擎都有了很久的历史(至今二十多年),当中也由这两种引擎产生了很多变体!于是POSIX的出台规避了不必要变体的继续产生。这样一来,主流的正则引擎又分为3类:一、DFA,二、传统型NFA,三、POSIX NFA。
小傅哥
2021/04/12
5330
java正则表达式详解
正则表达式用于指定字符串的模式,你可以任何需要定位使用匹配某种特定模式的字符串的情况下使用正则表达式 jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。 先举些入门的概念 ---- // 反斜杠 /t 间隔 ('/u0009') /n 换行 ('/u000A') /r 回车 ('/u000D') /d 数字 等价于[0-9] /D 非数字 等价于[^0-9] /s 空白符号 [/t/n/x0B/f/r] /S 非空白符号 [^/t/n/x0B/f/r] /w
张俊怡
2018/04/24
8790
java正则表达式详解
Java 正则表达式的用法和实例
6、\S符号:非空字符 7、\s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。 8、\r符号:空格符,与\n、\tab相同
全栈程序员站长
2022/08/30
1.4K0
Java 正则表达式的用法和实例
简单粗暴的正则表达式笔记
正则表达式是用来描述具有一定特征的字符串的特殊字符串。 Regular Expression。
刘大猫
2024/12/03
3130
正则表达式——Java程序员懂你
正则表达式 关键字:正则表达式,Pattern,Matcher,字符串方法,split,replace 前文书立下了一个flag,这里要把它完成,就是正则表达式,它是一个工具,是很早就存在于标准Unix工具集之中的,例如sed和awk。然而不经常使用Unix系统的程序员们依然能够在JavaScript,java,python,perl等等地方看到它,每当我们看到手指纷飞的他人写着精妙的一小撮正则就干了我们好几篇的校验代码的时候,心里默默升起一股羡慕之情,同时只能赶紧把这一小撮正则保存下来,下次好修修补
文彬
2018/05/08
1.1K0
22 Java 正则表达式
正则表达式(regular expression)用于指定字符串的模式,你可以在任何需要定位匹配某种特定模式的字符串的情况下使用正则表达式。 正则表达式语法 正则表达式语法(续) 表1-9 预定义的字符类名字 大部分字符都可以与它们自身匹配 .符号可以匹配任何字符(有可能不包括行终止符,这取决于标志的设置)。 使用 \ 作为转义字符,例如,\. 匹配句号而 \\ 匹配反斜线。 ^ 和 $ 分别匹配一行的开头和结尾。 如果 X 和 Y 是正则表达式,那么 XY 表示“任何 X 的匹配后面跟随
acc8226
2022/05/17
5810
22 Java 正则表达式
相关推荐
java中正则表达式的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档