正则表达式概述及在JAVA中的使用

概述

你是否使用过查找*.tmp临时文件?

你是否使用过编辑工具中的查找/替换功能?

其实它们都使用了正则表达式

正则表达式的作用

提供更强大的字符串处理能力

测试字符串内的模式

例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或身份证号码模式。即数据验证

替换文本

可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。

基于模式匹配从字符串中提取子字符串

可以查找文档内或输入域内特定的文本。

在JAVA中使用正则表达式

正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持

jdk1.4中加入了java.util.regex包提供对正则表达式的支持。而且Java.lang.String类中的replaceAll和split函数也是调用的正则表达式来实现的。

正则表达式对字符串的操作主要包括:

1.字符串匹配

2.指定字符串替换

3.指定字符串查找

4.字符串分割

Pattern类

Pattern类的实例表示以字符串形式指定的正则表达式,其语法类似于Perl所用的语法。

用字符串形式指定的正则表达式,必须先编译成Pattern类的实例。生成的模式用于创建Matcher对象,它根据正则表达式与任意字符序列进行匹配。多个匹配器可以共享一个模式,因为它是非专属的

用compile方法把给定的正则表达式编译成模式,然后用matcher方法创建一个匹配器,这个匹配器将根据此模式对给定输入进行匹配。pattern方法可返回编译这个模式所用的正则表达式。

时间: 2024-09-19 08:20:10

正则表达式概述及在JAVA中的使用的相关文章

JAVA中正则表达式的应用(一)

正则表达式: 正则表达式是一种可以用于模式匹配和替换的强有力的工具,一个正则表达式就是由普通的字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式,它描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 正则表达式在字符数据处理中起着非常重要的作用,我们可以用正则表达式完成大部分的数据分析处理工作,如:判断一个串是否是数字.是否是有效的Email地址,从海量的文字资料中提取有价值的数据等等,如果不使用正则表达式,那么实现的

java中正则表达式问题

问题描述 java中正则表达式问题 如题: 如何得到一个字符串中匹配正则的子字符串? 例如:String str="abk abggs wws aos poe wihj allls ayutres "; java代码..... 得到(条件-----------以a开头以s结尾) "abk", "abggs","aos","allls","ayutres" 求所需的正则表达式 解决方案 这

Java中IO流,输入输出流概述与总结

总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类: 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类. [首先需要明白的是:流是干什么的???(为了永久性的保存数据)   根据数据流向的不同分为输入流和输出流:   根据处理数据类型的不同分为字符流和字

java 正则表达式-这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下

问题描述 这条java中的替换字符串的正则表达式是什么意思?能不能详细解释一下 replaceAll("([^u4e00-u9fa5]{1})([^u4e00-u9fa5]{1})", "$2") 解决方案 在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容.许多程序设计语言都支持利用正则表达式进行字符串操作.例如,在Perl中就内建了一个功能

求一个java中正则表达式,匹配所有标点符号,但除去‘-’和‘_’的

问题描述 求一个java中正则表达式,匹配所有标点符号,但除去'-'和'_'的 解决方案 可以使用正则表达式:(?=\pP)[^-_]测试:String ss = "测试test.df/:'-_";System.out.println(ss.replaceAll("(?=\pP)[^-_]", ""));输出:测试testdf-_解释:(1)前面部分(?=\pP)是个顺序环视正则表达式,只匹配位置不占用字符,匹配的位置是一个标点符号.(2)匹配到

正则表达式-Java中如何给字符串加空格

问题描述 Java中如何给字符串加空格 Java中如何在一个字符串中每隔四个字符,加入一个空格,然后再将字符串输入到一个新定义的字符串,如: str1=ADSFBKI89H8H8M8J8F8T9%Th09I; 我需要每隔四个加一个空格,有几种实现方法?? 解决方案 给一种实现,直接上代码...... import java.util.Arrays; public class Test09 { public static void main(String[] args) { String old=

详解Java中的正则表达式

详解Java中的正则表达式,并列出常用的正则表达式语法和一些常用的场景. 判断一个字符串是否是由数字组成: 当不使用正则表达式的时候的实现代码: public class RegexDemo01 { public static void main(String[] args) { String s = "23432324"; char c[] = s.toCharArray();//将字符串转换成字符数组 for (int i = 0; i < c.length; i++) {

java中 正则表达式解决连续不同数字问题

问题描述 java中 正则表达式解决连续不同数字问题 匹配ABC4或者AB44 ,A,B,C为任意不相等数字 在java中匹配上诉规则应该是怎样的? 正则菜鸟,求解答,谢过 解决方案 ^(d)(?!1)(d)(?!1|2)d4$ 解决方案二: /^d{3}[4]$/ /^d{2}[4]{2}$/ 其实没懂什么意思,上面那两个字符串是需要用一个正则表达式还是两个?还是那两个是一个整的字符串?晕乎乎的,不过我也是菜鸟,仅供参考,答错勿怪哦.... 解决方案三: 按照你给的这两个,基本上就是绝对匹配了

如何使用JS的正则表达式检查 java中的文档注释? (用于代码高亮)

问题描述 例如:在java 中可以这样写文档注释/***这个是注释**/我想实现的效果是/***这个是注释**/现在我想用JS 的正则表达式 匹配他我写了如下的代码但是就是不起作用,只能匹配 /** 其他剩下的都不能匹配.MultiLineCComments : new RegExp('/\*[\s\S]*?\*/', 'gm'),希望哪为朋友帮帮忙,帮我修改一下这个正则表达式,使其能够正常工作.谢谢!问题补充:其实我这段代码是MultiLineCComments : new RegExp('/