1. 校验
/**
* 校验 email
* @param email
* @return
*/
public static boolean validateEmail(String email){
String regex = "([a-z\\d]+[_|\\-|\\.]?)*[a-z\\d]+@(([a-z\\d]+[\\-]?)*[a-z\\d]+\\.)+[a-z]{2,3}";
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(email);
return m.matches();
}
2. 分割
String data = "orchids,chrysanthemum;narcissus,lotus";
String[] flowers = data.split(",|;");
for (String flower : flowers){
System.out.println(flower);
}
3. 替换
String data = "<head><title>登录</title></head>";
// 使用 reluctant 模式由小到大进行匹配
data = data.replaceAll("<.+?>", ""); // 登录
4. 提取
String data = "<a href=\"http://www.apache.org/\">Apache</a>";
String regex = "(http://|https://){1}[\\w\\.:/\\-]+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(data);
if (m.find()){
System.out.println(m.group()); // http://www.apache.org/
}
5. 三种匹配模式
String text = "A1BB23CCC456DDDD78910_";
Pattern p = null;
Matcher m = null;
int start, end;
// greedy 贪婪模式
System.out.println("===== greedy =====");
p = Pattern.compile("(\\w+)\\d+_?");
m = p.matcher(text);
while (m.find()){
start = m.start();
end = m.end();
System.out.println(text.substring(start, end));
System.out.println("group 1 : " + m.group(1));
}
// Reluctant 勉强模式
System.out.println("===== reluctant =====");
p = Pattern.compile("(\\w+?)\\d+_?");
m = p.matcher(text);
while (m.find()){
start = m.start();
end = m.end();
System.out.println(text.substring(start, end));
System.out.println("group 1 : " + m.group(1));
}
// Possessive 占有模式
System.out.println("===== possessive =====");
p = Pattern.compile("(\\w++)\\d+_?");
m = p.matcher(text);
while (m.find()){
start = m.start();
end = m.end();
System.out.println(text.substring(start, end));
System.out.println("group 1 : " + m.group(1));
}
// output
===== greedy =====
A1BB23CCC456DDDD78910_
group 1 : A1BB23CCC456DDDD7891
===== reluctant =====
A1
group 1 : A
BB23
group 1 : BB
CCC456
group 1 : CCC
DDDD78910_
group 1 : DDDD
===== possessive =====
6. END
分享到:
相关推荐
虽然正则表达式功能强大,但过度使用或者设计复杂的正则可能会导致性能下降。在处理大量数据时,应谨慎使用,并考虑优化匹配策略。 通过这些知识点,开发者可以熟练地在Java程序中运用正则表达式进行各种文本处理...
Boost库的正则表达式组件,即`boost::regex`,是C++实现正则表达式的常用选择之一,它提供了一套完整的API接口,使得在C++中编写正则表达式相关的代码变得相对简单。 在Visual Studio 2008环境下,开发者可以将...
正则表达式(Regular Expression,简称regex)是用于...理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际项目中,还需要根据具体需求和场景,对这些基本模式进行适当的调整或扩展。
5. **常见模式库**:内置常用正则表达式模式,如邮箱、电话号码、日期等,方便用户选择使用。 6. **教程和文档**:提供详细的正则表达式使用指南和C# API参考,帮助用户学习和理解正则表达式。 7. **版本控制**:...
### 一、正则表达式的使用场景与功能 在上述代码片段中,正则表达式被用来完成多种任务,包括字符串清洗、格式验证等。 #### 字符串清洗 1. **去除特殊字符**:`param.replaceAll("([\'\\s]{1})","");` 这行代码的...
本节我们将深入探讨正则表达式工具类`RegUtils`,它封装了正则表达式的常用功能,便于在实际开发中进行复用。 首先,`RegUtils`类通常会包含一系列静态方法,这些方法接受正则表达式和待处理字符串作为参数,返回...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。在C#编程语言中,正则表达式被广泛应用于数据验证,如检查电子邮件地址的有效性或网址URL的格式。以下是对这些常见正则表达式及其在C#中...
例如,在编写代码时,可以通过正则表达式来验证用户输入的IP地址是否有效;在网络设备配置中,可以利用正则表达式来过滤和管理大量的IP地址信息。 总之,“IP地址的正则表达式”不仅展示了正则表达式的强大功能,也...
在实际开发中,结合`StringBuilder`类处理大量字符串拼接,以及利用正则表达式的强大功能进行数据验证和清洗,都将使你的代码更加高效和专业。通过深入阅读《C#字符串和正则表达式参考手册》,你将能够更全面地理解...
JAVA正则表达式4种常用功能 JAVA正则表达式是一种强大的字符串处理工具,自从JDK1.4开始,SUN公司就已经对其提供了支持。正则表达式可以实现多种功能,以下将会详细介绍四种常用的功能:查询、提取、分割和替换。 ...
下面将详细介绍这些正则表达式的功能和应用场景。 ### 基础字符匹配 #### 1. 英文字母匹配 - **全字母匹配**:`^[A-Za-z]+$` 该表达式用于匹配整个字符串由大写或小写字母组成的情况。 - **全大写字母匹配**:`^...
根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具...开发者可以根据具体需求选择合适的正则表达式来提高代码的健壮性和安全性。
6. **代码生成**:能自动生成对应语言的代码片段,方便将测试的正则表达式集成到实际项目中。 7. **学习资源**:软件可能附带正则表达式的基础教程和常用模式,对于初学者来说是一份很好的参考资料。 在实际使用...
5. 代码高亮与提示:对于正则表达式的关键字和特殊字符进行高亮显示,并可能提供语法提示功能。 6. 错误检查:在用户输入不合法的正则表达式时,工具会给出错误提示。 7. 示例库:内置一些常见的正则表达式示例,...
6. **常见正则表达式库**:集成了一些常用正则表达式模板,用户可以直接引用或作为参考,节省了编写时间。 7. **错误提示**:当输入的正则表达式有误时,工具会给出错误提示,帮助用户快速修正。 在实际工作中,...
本文将深入探讨Linux Shell下的正则表达式,包括其基本概念、元字符、模式匹配以及常用的实践工具和教材。 一、正则表达式基础 正则表达式(Regular Expression,简称RE)是一种模式匹配语言,用于在文本中查找符合...
JavaScript的`match()`、`search()`和`replace()`方法也是常用的正则表达式工具。 在实际操作中,你可能首先需要分析目标网站的HTML结构,找出视频链接出现的规律,然后编写相应的正则表达式。如果网站采用了动态...
6. **自定义规则库**:用户可能可以保存和加载常用的正则表达式规则,以应对不同场景的需求。 7. **错误检查和调试**:对于复杂的正则表达式,程序可能会包含一个调试功能,帮助用户检查表达式的正确性,避免因语法...
正则表达式的基本结构和常用元字符包括: - **`.`**:匹配任意单个字符,除了换行符。 - **`^`**:匹配字符串的开始。 - **`$`**:匹配字符串的结束。 - **`\d`**:匹配数字,等价于`[0-9]`。 - **`\D`**:匹配非...