javaAPI:
public static void main(String[] args) {
String str = "lixin_2002@163.com";
String reg = "([a-zA-Z0-9]+)\\@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
System.out.println(m.find());
}
jakarta-oro的使用1(简单匹配):
public static void main(String[] args) throws MalformedPatternException {
//取出日志文件的IP和时间
String log = "172.26.155.241 - - [26/Feb/2001:10:56:03 -0500]";
String logreg = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s-\\s-\\s\\[([^\\]]+)\\]";
PatternCompiler pc = new Perl5Compiler();
org.apache.oro.text.regex.Pattern p = pc.compile(logreg);
PatternMatcher pm = new Perl5Matcher();
System.out.println(pm.contains(str,p));
if(pm.contains(log,p)){
org.apache.oro.text.regex.MatchResult mr = pm.getMatch();
System.out.println("ip: " + mr.group(1));
System.out.println("time: " + mr.group(2));
}
}
jakarta-oro的使用2(匹配多个):
public static void main(String[] args) throws MalformedPatternException {
//取出HTML标签里的属性值及值 分两次
String html = "<font face='Arial, Serif' size='12' color='red'>";
String reg1 = "<[a-z]+\\s+(.+)>";
String reg2 = "([a-z]+)='([^']+)'";
PatternCompiler compiler = new Perl5Compiler();
Pattern pattern = compiler.compile(reg1);
PatternMatcher matcher = new Perl5Matcher();
System.out.println(matcher.contains(html, pattern));
if(matcher.contains(html, pattern)){
MatchResult result = matcher.getMatch();
String arrs = result.group(1); //先取出属性列表
System.out.println(arrs);
Pattern pattern2 = compiler.compile(reg2);
PatternMatcherInput input = new PatternMatcherInput(arrs);
while(matcher.contains(input, pattern2)){
result = matcher.getMatch();
System.out.println(result.group(1)+"=" + result.group(2));
}
}
}
jakarta-oro的使用3(字符串替换):
public static void main(String[] args) throws MalformedPatternException {
//将str1和str2 的前面aaa部分替换成www 而后面的不替换
String str = "aaa&abc";
String str2 = "aaa&cde";
String reg = "aaa&(.+)";
PatternCompiler compiler = new Perl5Compiler();
Pattern pattern = compiler.compile(reg,Perl5Compiler.CASE_INSENSITIVE_MASK);
PatternMatcher matcher = new Perl5Matcher();
String result = Util.substitute(matcher, pattern,
new Perl5Substitution("www&$1"), //注意:$1 $2等 表示已经匹配且提取出来的组
str,Util.SUBSTITUTE_ALL);
System.out.println(result);
}
分享到:
相关推荐
Java正则表达式是Java编程语言中的一个强大工具,它用于在字符串中进行模式匹配和查找、替换等操作。在本文中,我们将深入探讨Java正则表达式的概念、语法以及如何在实际编程中使用它们。 1. **正则表达式基础** -...
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...
在Java编程中,正则表达式被广泛应用于数据验证、文本提取、字符串处理等多个场景。以下是对Java中正则表达式使用的一些核心概念和常用模式的详细解释: 1. **正则表达式编译与匹配过程**: - 正则表达式首先需要...
精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...
jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式...Java正则表达式校验邮箱与手机号jQuery中校验时间格式的正则表达式小结校验普通电话、传真号码的正则表达式(可以+开头...
#### 四、小结 通过上述内容可以看出,《正则表达式口袋参考书》涵盖了多种主流编程语言下的正则表达式实现细节,对于想要深入学习这一领域的开发者来说,是一本非常有价值的参考书籍。无论是在日常开发工作中还是在...
中国移动 134.135.136.137.138.139.150.151.152.157.158.159.187.188 ,147(数据卡) 中国联 通130.131.132.155.156.185.186 中国电信133.153.180.189 CDMA 133,153 正 则如下: 代码如下: /// <summary> /// 匹配移动...
`target`和`replacement`都是普通的字符串,不涉及正则表达式。例如,在`"abac".replace("a", "\\a")`中,`"a"`被`\a`替换,结果为`"\ab\ac"`,因为`\\`表示一个反斜线。 2. `replaceAll(String regex, String ...
随着时间的发展,不同的开发者独立开发了多种质量、功能和复杂度各不异的Java正则表达式包。直到2002年,随着Java 1.4的发布,Sun公司正式推出了其内置的`java.util.regex`包,为Java社区提供了一个标准的正则表达式...
#### 小结 本文介绍了正则表达式的基础语法及其在 Java 字符串中的应用,并详细讨论了 `String` 和 `StringBuilder` 类的特性和方法。同时,还解释了 `Object` 类的重要性以及自动装箱和拆箱的概念。这些知识点对于...
### 小结 - **正则表达式**作为一种强大的文本处理工具,在多种编程语言中都有广泛应用。 - 《Mastering Regular Expressions, 3rd Edition》不仅适合从未接触过正则表达式的读者入门学习,也适合已有基础的读者...
javascript正则表达式用法: 代码如下:function checkreg(myreg,mytext) { if(myreg.test(mytext) { alert(“ok”); return true; } else { return false; } } //另一种写法 代码如下:function checkreg...
元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移。 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1、直接量 /javascript/ 匹配带有...
本文将介绍两种方法来获取Java中的文件扩展名:使用正则表达式和字符串截取。 ### 使用正则表达式获取文件扩展名 正则表达式是一种强大的文本匹配工具,可以用来匹配、查找和提取特定模式的字符串。在Java中,我们...
javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下: stringObj.match(rgExp) 其中stringObj是必选项。对其进行查找的 String 对象或字符...
以上是对给定文件中涉及到的计算机科学相关知识点的详细解释,涵盖了软件开发方法、算法分析、数据结构、Java编程、数据库设计、I/O操作、正则表达式、GUI编程、线程管理和Java Applet等多个方面。
8. **正则表达式**:正则表达式是用于匹配字符串模式的强大工具,在输入验证、数据提取等方面非常有用。例如,可以使用正则表达式检查用户输入的格式是否正确。 9. **格式化显示**:Java提供了一系列的类,如...
#### 五、实验小结 通过本次实验,不仅巩固了对Java中字符串、正则表达式、数学运算、日期处理以及集合框架的理解,还提高了编程实践能力和问题解决能力。实验过程中的问题记录与解决也为后续的学习提供了宝贵的参考...
总之,`String.split()`方法是Java中进行字符串切割的重要工具,正确理解和使用正则表达式转义规则是关键。在编写代码时,一定要注意特殊字符的处理,确保它们被正确地解析为分隔符,而不是正则表达式的一部分。同时...