1、打开myeclipse,准备编写java代码;
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的平昌网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2、新建java类,
3、编写java代码,
package test;
import java.util.regex.Pattern;
public class TestRegexp {
public static void main(String[] args) {
String regex = "^A.*C.*B$";
Pattern p = Pattern.compile(regex);
java.util.regex.Matcher m = p.matcher("ACDB");
System.out.println("START");
while (m.find()) {
System.out.println(m.group());
}
}
}
4、执行,在consle中看到结果如下,匹配成功;
正则表达式的主要用法就是判断某个字符串是否符合某个固定的格式,以下是电话号码的格式判断:
BufferedReader in;
Pattern pattern = Pattern.compile("//(//d{3}//)//s//d{3}-//d{4}");
in = new BufferedReader(new FileReader("18046521658"));
String s;
while ((s = in.readLine()) != null)
{
Matcher matcher = pattern.matcher(s);
if (matcher.find())
{
System.out.println(matcher.group());
}
}
in.close();
备注:其中/d单字符类型用来匹配从0到9的任何数字,另外{3}重复符号,是个简便的记号,用来表示有3个连续的数字位,也等效于(/d/d/d)。/s也另外一个比较有用的单字符类型,用来匹配空格,比如Space键,tab键和换行符。
按照你的要求编写的java程序如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Postfix{
public static void main(String[] args){
String s="/ifs/dataiq/36000036118/01\n";
s=s+"/ifs/dataiq/36000036118/01/36040021/2019-12-13/";
s=s+"0690948/36040021-0690948440.pdf\n";
s=s+"/ifs/dataiq/36000036118/02/36040022/2020-12-13/";
s=s+"0690933/36040021-0690948440.cfg\n";
s=s+"/ifs/dataiq/36000036118/03/36040023/2022-11-13/";
s=s+"0690955/36040021-0690948440.cxx\n";
s=s+"/ifs/dataiq/36000036118/04/36040024/2023-09-13/";
s=s+"0690955/36040021-0690948440.txt";
String regex="(?im)^.*?\\.(pdf|cfg|cxx|txt)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
}
}
jdk1.4推出java.util.regex包,为我们提供了很好的JAVA正则表达式应用平台。
Test.java
-------------------------------------------------------------------------------------------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
//简单认识正则表达式的概念
/*
p("abc".matches("..."));
p("a8729a".replaceAll("\\d", "-"));
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
p(m.matches());
p("fgha".matches("[a-z]{3}"));
*/
一个正则表达式就是由普通字符(例如大小写字母)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"java"中没有包含任何元字符,它可以匹配"java"和"javascript"等字符串,但是不能匹配"Java"。
正则表达式不仅能进行字符串的匹配,还能进行字符串的提取、替换。
示例代码:
String regEx = ".+/(.+)$";
String str = "D:/java/test.txt";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (!m.find()){
System.out.println("文件路径格式错误!");
return;
}
System.out.println(m.group(1));
运行结果:test.txt
正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕就可以通过Matcher 类的group方法取到所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。