import java.util.regex.Matcher;
import java.util.regex.Pattern;
/***
* JAVA正则表达式测试
* @author greatwqs
*
*/
public class RegexExpressionTest {
public static void main(String[] args) {
//简单认识正则表达式的概念
// =============================================================================
println("abc".matches("..."));
println("a8729a".replaceAll("\\d", "-"));
Pattern p = Pattern.compile("[a-z]{3}");
Matcher m = p.matcher("fgh");
println(m.matches());
println("fgha".matches("[a-z]{4}")); // matches是匹配整个字符串,在这里为"fgha"
//初步认识. * + ?==============================================================
// X* X出现0次以上(包括0次)
// X+ X出现1次以上(包括1次)
// println("a".matches("."));
// println("aa".matches("aa"));
// println("aaaa".matches("a*"));
// println("aaaa".matches("a+"));
// println("".matches("a*"));
// x? -- 0个或者一个x
// println("aaaa".matches("a?"));
// println("".matches("a?"));
// println("a".matches("a?"));
// x{3,100} x出现3-100次
// println("214523145234532".matches("\\d{3,100}"));
// println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
// println("192".matches("[0-2][0-9][0-9]"));
// =============================================================================
//范围 ^在[]之间表示非,在最外面表示一行的开头
// println("a".matches("[abc]"));
// println("a".matches("[^abc]"));
// println("A".matches("[a-zA-Z]"));
// println("A".matches("[a-z]|[A-Z]"));
// println("A".matches("[a-z[A-Z]]")); // 相当于println("A".matches("[a-z]|[A-Z]"));
// println("R".matches("[A-Z&&[RFG]]"));
// =============================================================================
//认识\s \w \d \
// println(" \n\r\t".matches("\\s{4}")); //true
// println(" ".matches("\\S")); //false
// println("a_8".matches("\\w{3}")); //true
// println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+")); // true \\d+ 表示数字出现1次以上
// println("\\".matches("\\\\")); //true
//"\\"为一个反斜线(JAVA语法); 在正则表达式中"\\"代表一个反斜线字符,
// 而这个在JAVA中\需要转义,所以正则表达式在JAVA中表示一个反斜线需要4个\,即"\\\\"
// =============================================================================
//POSIX Style 为Unix的一套标准
// println("a".matches("\\p{Lower}"));
/*\p{Lower} 小写字母字符:[a-z]
\p{Upper} 大写字母字符:[A-Z]
\p{ASCII} 所有 ASCII:[\x00-\x7F]
\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]
\p{Digit} 十进制数字:[0-9]
\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]
\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]
\p{Print} 可打印字符:[\p{Graph}\x20]
\p{Blank} 空格或制表符:[ \t]
\p{Cntrl} 控制字符:[\x00-\x1F\x7F]
\p{XDigit} 十六进制数字:[0-9a-fA-F]
\p{Space} 空白字符:[ \t\n\x0B\f\r] */
// =============================================================================
//boundary 边界匹配开头(^)和结尾($)
// "^"在开头则表示一行的开始,EG: "^h.*"; "^"在[]里面表示非,EG: "[^1-9]"
// println("hello sir".matches("^h.*")); // true
// println("hello sir".matches(".*ir$")); // true
// println("hello sir".matches("^h[a-z]{1,3}o\\b.*")); // true 正则"\b"表示单词边界
// println("hellosir".matches("^h[a-z]{1,3}o\\b.*")); // false
// =============================================================================
//whilte lines 空白行
// println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
//
// println("aaa 8888c".matches(".*\\d{4}."));
// println("aaa 8888c".matches(".*\\b\\d{4}."));
// println("aaa8888c".matches(".*\\d{4}."));
// println("aaa8888c".matches(".*\\b\\d{4}.")); // false
// =============================================================================
// 匹配Email地址
// println("greatwqs@163.com".matches("[\\w]+@[\\w]+\\.[\\w]+")); // "\\w"表示单词字符:[a-zA-Z_0-9]
//email
// println("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));
// true [.-] ".","-"取其一
// =============================================================================
//matches find lookingAt
// Pattern p = Pattern.compile("\\d{3,5}");
// String s = "123-34345-234-00";
// // 01234567890123456789
// Matcher m = p.matcher(s);
// // println(m.matches());
// // m.reset(); // 进行重置, 相当于没有调用println(m.matches());
// println(m.find()); // find找匹配的子串返回
// println(m.start() + "-" + m.end());
// println(s.substring(m.start(),m.end())); // 上面find匹配的子串
// println(m.find());
// println(m.start() + "-" + m.end());
// println(m.find());
// println(m.start() + "-" + m.end());
// println(m.find());
// // println(m.start() + "-" + m.end());
// // 前面的println(m.find());为false, 所以表示没有子串匹配, 所以就不能打出下标
// println(m.lookingAt());
// // 从匹配的字符串的起始位置匹配相当于m.reset();再m.find();
// println(m.lookingAt());
// println(m.lookingAt());
// println(m.lookingAt());
// =============================================================================
//replacement 字符串的替换
// Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
// Matcher m = p.matcher("java Java JAVa JaVa I love JAVA you hate Javaf");
// println(m.replaceAll("JAVA"));
// =============================================================================
//group
// Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
// String s = "123aa-34345bb-234cc-00";
// Matcher m = p.matcher(s);
// while(m.find()) {
// println(m.grouprintln()); // 打印子串
// println(m.start() + "-" + m.end()); // 打印下标
// println("");
// }
// =============================================================================
//flags的简写
// println("Java".matches("(?i)(java)"));
// =============================================================================
//replacement 字符串的替换, 偶数转化为小写,基数转化大写算法
// Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
// Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
// StringBuffer buf = new StringBuffer();
// int i=0;
// while(m.find()) {
// i++;
// if(i%2 == 0) {
// m.appendReplacement(buf, "java");
// } else {
// m.appendReplacement(buf, "JAVA");
// }
// }
// m.appendTail(buf);
// println(buf);
}
public static void println(Object o) {
System.out.println(o);
}
}
- 描述: 韦德桌面壁纸
- 大小: 171.6 KB
分享到:
相关推荐
为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...
8. java正则表达式技巧大全:文章最后还提供了几个有关于java算法相关的内容,例如《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...
在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
Java 正则表达式对象实现正则获取功能 在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则...
java通过正则表达式匹配获取MAC(支持windows和Linux)
以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...
本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...
Java正则表达式虽然与其他语言的正则表达式有相似之处,但它们并不完全相同,有自己的语法和特性。使用Java正则表达式的好处在于它能显著提高编程效率,例如验证电子邮件地址这样的任务,传统方法可能需要大量的代码...
### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...
Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...
### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...
Xeger的工作原理是通过解析正则表达式,然后生成与之匹配的随机字符串。例如,如果你有一个正则表达式"^[a-zA-Z0-9]{5,10}$",它表示一个由5到10个字母或数字组成的字符串。Xeger会根据这个规则生成长度在5到10之间...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...