• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 基于Java的正则表达式

基于Java的正则表达式

作者:H.U.C-王子 字体:[增加 减小] 来源:互联网 时间:2017-05-28

H.U.C-王子 通过本文主要向大家介绍了java正则表达式教程,java正则表达式语法,正则表达式 java,java正则表达式实例,java正则表达式大全等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

正则表达式概念

 正则表达式,又称正规表示法、常规表示法(英语: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); 
 }
 }
</div>

切割:使用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);
 }
 }
 }
</div>

替换:使用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);
 }
 }
</div>

叠词替换:想要替换重复出现的单词,例如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
 } 
 } 
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于Java的正则表达式
  • Java正则表达式_动力节点Java学院整理
  • Java 简化正则表达式的使用
  • Java中正则表达式的使用和详解(下)
  • Java中正则表达式的使用和详解(上)
  • java中正则表达式实例详解
  • Java正则表达式实现在文本中匹配查找换行符的方法【经典实例】
  • java使用正则表达式查找包含的字符串示例
  • Java基于正则表达式实现查找匹配的文本功能【经典实例】
  • Java基于正则表达式实现的替换匹配文本功能【经典实例】

相关文章

  • 2017-05-28Java中自定义异常详解及实例代码
  • 2017-05-28Java中用Socket实现HTTP文件上传实例
  • 2017-05-28spring cglib 与 jdk 动态代理
  • 2017-05-28Spring Boot 项目发布到 Tomcat 服务器的操作步骤
  • 2017-05-28Java集合删除元素ArrayList实例详解
  • 2017-05-28Java正则匹配中文的方法实例分析
  • 2017-09-13错误总结之no appropriate constructor in class
  • 2017-05-28Java用 Rhino/Nashorn 代替第三方 JSON 转换库
  • 2017-05-28JAVA SFTP文件上传、下载及批量下载实例
  • 2017-05-28SpringBoot用JdbcTemplates访问Mysql实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JAVA动态代理模式(从现实生活角度理解代码原理)
    • 详解Spring boot+CXF开发WebService Demo
    • Java 条件控制与循环控制实例
    • MyBatis的嵌套查询解析
    • Spring Boot Redis 集成配置详解
    • Java正则表达式之split()方法实例详解
    • java实现ftp文件上传下载功能
    • JAVAEE中用Session简单实现购物车功能示例代码
    • 详解Spring MVC事务配置
    • java 动态增加定时任务示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有