import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression {
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("aaas".matches("[a-z]{3,}"));
// 初步认识. * + ?
// p("a".matches("."));
// p("aa".matches("aa"));
// p("aaaa".matches("a*"));
// p("aaaa".matches("a+"));
// p("".matches("a*"));
// p("aaaa".matches("a?"));
// p("".matches("a?"));
// p("a".matches("a?"));
// p("214523145234532".matches("\\d{3,100}"));
// p("192.168.0.231".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
// p("192".matches("[0-2][0-9][0-9]"));
// 范围
// p("a".matches("[abc]"));
// p("a".matches("[^abc]"));
// p("A".matches("[a-zA-Z]"));
// p("a".matches("[a-z]|[A-Z]"));
// p("A".matches("[a-z[A-Z]]"));
// p("R".matches("[A-Z&&[RFG]]"));
// 认识\s \w \d \
// p(" \n\r\t".matches("\\s{4}"));
// p(" ".matches("\\S"));
// p("a_8".matches("\\w{3}"));
// p("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
// p("\\".matches("\\\\"));
// POSIX Style
// p("a".matches("\\p{Lower}"));
// boundary
// p("hello sir".matches("^h.*"));
// p("hello sir".matches(".*ir$"));
// p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
// p("hellosir".matches("^h[a-z]{1,3}o\\b.*")); // whilte lines
// p("\n".matches("^[\\s&&[^\\n
// p("aaa 8888c".matches(".*\\d{4}."));
// p("aaa8888c".matches(".*\\b\\d{4}."));
// p("aaa8888c".matches(".*\\d{4}."));
// p("aaa 8888c".matches(".*\\b\\d{4}."));
// email
// p("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));
// matches find lookingAt
// Pattern p = Pattern.compile("\\d{3,5}");
// String s = "123-34345-234-00";
// Matcher m = p.matcher(s);
// p(m.matches());
// m.reset();
// p(m.find());
// p(m.start() + "-" + m.end());
// p(m.find());
// p(m.start() + "-" + m.end());
// p(m.find());
// p(m.start() + "-" + m.end());
// p(m.find());
// //p(m.start() + "-" + m.end());
// p(m.lookingAt());
// p(m.lookingAt());
// p(m.lookingAt());
// p(m.lookingAt());
// 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);
// p(buf);
// 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()) {
// p(m.group());
// }
// qulifiers
// Pattern p = Pattern.compile(".{3,10}+[0-9]");
// String s = "aaaa5bbbb68";
// Matcher m = p.matcher(s);
// if (m.find())
// p(m.start() + "-" + m.end());
// else
// p("not match!");
// non-capturing groups
// Pattern p = Pattern.compile(".{3}(?=a)");
// String s = "444a66b";
// Matcher m = p.matcher(s);
// while (m.find()) {
// p(m.group());
// }
// back refenrences
// Pattern p = Pattern.compile("(\\d(\\d))\\2");
// String s = "122";
// Matcher m = p.matcher(s);
// p(m.matches());
// flags的简写
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
p("Java".matches("(?i)(java)"));
}
public static void p(Object o) {
System.out.println(o);
}
}
分享到:
相关推荐
标题中提到的“正则表达式经典实例”,意味着接下来...在学习和应用正则表达式时,最佳实践是多做练习和尝试,因为实际操作有助于加深理解和记忆。随着经验的积累,编写有效和优化的正则表达式将会变得越来越得心应手。
在线文档和教程(如MDN Web Docs、正则表达式30分钟入门教程等)提供了丰富的学习材料。还有专门的正则表达式库,如PCRE(Perl Compatible Regular Expressions),在特定环境下提供了更强大的功能和更高的性能。 ...
"regex.bmp"可能是一个示例图,展示了正则表达式的具体应用或者解析过程,而"JSP_note.doc"可能包含更详细的JSP笔记,包括示例代码、常见问题解答和最佳实践。 在实际项目中,JSP与正则表达式的结合可以实现以下...
学习正则表达式能够提高你的代码效率和质量,因此这份教程是很好的补充学习材料。 总的来说,这个资料包为准备SCJP考试的考生提供了全面的支持,包括了考试大纲、实战题库、陷阱提示以及实用的正则表达式教程。考生...
在提供的资源中,"正则表达式30分钟入门教程.pdf"和"正则表达式全解.pdf"是很好的学习材料,可以帮助初学者快速掌握正则表达式的基本概念和语法。"VBA编程入门.ppt"和"VBA入门级培训.ppt"虽然不是直接关于Perl,但...
4. **正则表达式**:正则表达式是一种强大的文本模式匹配工具,常用于字符串搜索、替换和验证。在Java中,正则表达式通过java.util.regex包来实现,可以帮助开发者高效地处理字符串,例如查找、替换特定模式的文本,...
"java中使用正则表达式.txt"探讨了Java如何支持和使用正则表达式进行文本处理。正则表达式在数据验证、搜索和替换等场景中非常有用,了解它们可以帮助你编写更强大的字符串处理代码。 "JAVA编程规范.txt"可能包含了...
根据描述中的关键词“javascript script 脚本 正则表达式”,我们可以进一步探讨相关知识点: 1. **JavaScript**: - JavaScript是一种广泛应用于网页开发的脚本语言,可以实现动态效果和交互功能。 - 了解...
在词法分析器的设计中,通常会用到正则表达式来定义不同类型的词汇单元,如关键字、标识符、常量、运算符等。例如,我们可能会用正则表达式 `"[a-zA-Z_][a-zA-Z0-9_]*"` 来匹配标识符,`"\d+"` 用于匹配整数常量,`...
JavaScript是Web开发中不可或缺的一部分,它为网页提供了动态交互的能力。在标题中提到的"常用API"是指JavaScript中经常使用的函数、...对于希望提升Web开发技能的初学者或进阶者来说,这些都是非常有价值的学习材料。
3. **正则表达式支持**:Notepad++支持强大的正则表达式搜索和替换,学习这部分代码有助于掌握正则表达式的应用和实现。 4. **多语言支持**:Notepad++支持多种语言,研究源码可以了解如何处理字符编码和国际化。 ...
在“计算机精品学习资料大放送.html”中,可能包含了一些额外的学习资源,比如Perl编程的技巧、最佳实践或者相关网站的链接,这些都可以作为辅助学习材料。而"[大家网]OReilly.Learning.Perl.5th.Edition...
- **正则表达式**:Perl支持强大的正则表达式,使得处理文本模式匹配和替换变得极其方便。 - **动态类型**:Perl是动态类型语言,变量的数据类型在运行时自动确定,这使得代码更简洁。 - **胶水语言**:Perl可以轻松...
3. **正则表达式**:Perl的正则表达式功能强大且灵活,是其处理文本的一大利器。资源包可能提供了详细的正则表达式教程,帮助开发者熟练掌握这一技能。 4. **脚本实例**:通过实际的脚本示例,开发者可以学习到如何...
4. **字符串与正则表达式**:介绍字符串操作函数,如拼接、查找替换,以及正则表达式的使用方法。 5. **日期与时间**:涵盖日期函数,如获取当前时间、格式化日期、计算时间差等。 6. **文件与目录操作**:如何...
这个压缩包中包含了多个Markdown格式的文档,每个文档对应一个特定的Java编程主题,是学习和巩固Java知识的理想材料。 1. **正则.md**:正则表达式在Java中扮演着重要的角色,用于处理字符串的匹配和查找。此文档...
2. **正则表达式(Regex)**:Python的`re`模块提供了强大的文本匹配功能,通过使用正则表达式,可以实现复杂的文本搜索和模式匹配。例如,`re.search()`、`re.findall()`、`re.sub()`等函数。 3. **文件I/O**:...
1. Boost库是一个跨平台的C++库,它提供了大量的模板类和函数,覆盖了字符串处理、正则表达式、数据结构、算法、泛型编程等领域。开发者可以借助Boost库来解决许多常见的编程问题,而无需从头开始编写代码。 2. ...
- **进阶篇**: 涵盖函数、对象、数组、正则表达式等进阶主题。 - **高级篇**: 讨论异步编程、模块化开发、面向对象编程等高级概念。 - **实战篇**: 提供了大量的实际项目案例分析,帮助读者将理论知识应用于实践...