Java之正则表达式
来源:互联网 发布:手机淘宝怎么修改地址 编辑:程序博客网 时间:2024/06/15 23:46
前言
正则表达式是处理字符串匹配问题的工具,在爬虫和数据校验的时候用的比较多,下面介绍一下Java中正则表达式的若干规则。
语法
对小括号的解释的例子:
1、(abc|bcd|cde),表示这一段是abc、bcd、cde三者之一均可,顺序也必须一致
2、(abc)?,表示这一组要么一起出现,要么不出现,出现则按此组内的顺序出现
3、a(?=bbb) 顺序环视 表示a后面必须紧跟3个连续的b
程序测试练习
package com.spyder;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;public class RegTest { @Test public void test1(){ System.out.println("abc".matches("...")); // true System.out.println("a8729a".replaceAll("\\d", "-")); // a----a Pattern p = Pattern.compile("[a-z]{3}"); Matcher m = p.matcher("fgh"); System.out.println(m.matches()); // true System.out.println("fgha".matches("[a-z]{3}")); // false } @Test public void test2(){ System.out.println("a".matches("."));// true System.out.println("aa".matches("aa"));// true System.out.println("aaaa".matches("a*")); // true System.out.println("aaaa".matches("a+"));// true System.out.println("".matches("a*"));// true System.out.println("aaaa".matches("a?"));// false System.out.println("".matches("a?"));// true System.out.println("a".matches("a?"));// true System.out.println("214523145234532".matches("\\d{3,100}"));// true System.out.println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//false System.out.println("192".matches("[0-2][0-9][0-9]")); // true } @Test public void test3(){ System.out.println("a".matches("[abc]")); // true System.out.println("a".matches("[^abc]")); // false System.out.println("A".matches("[a-zA-Z]"));// true System.out.println("A".matches("[a-z]|[A-Z]"));// true System.out.println("A".matches("[a-z[A-Z]]"));// true System.out.println("R".matches("[A-Z&&[RFG]]"));// true } @Test public void test4(){ System.out.println(" \n\r\t".matches("\\s{4}"));// true System.out.println(" ".matches("\\S"));// false System.out.println("a_8".matches("\\w{3}"));// true System.out.println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));// true System.out.println("\\".matches("\\\\"));// true } @Test public void test5(){ System.out.println("hello sir".matches("^h.*"));// true System.out.println("hello sir".matches(".*ir$"));// true System.out.println("hello sir".matches("^h[a-z]{1,3}o\\b.*"));// true System.out.println("hellosir".matches("^h[a-z]{1,3}o\\b.*")); // false System.out.println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));// true System.out.println("aaa 8888c".matches(".*\\d{4}."));// true System.out.println("aaa 8888c".matches(".*\\b\\d{4}."));// true System.out.println("aaa8888c".matches(".*\\d{4}."));// true System.out.println("aaa8888c".matches(".*\\b\\d{4}."));// false } @Test public void test6(){ Pattern p = Pattern.compile("\\d{3,5}"); String s = "123-34345-234-00"; Matcher m = p.matcher(s); System.out.println(m.matches()); // false m.reset(); // reset:给当前的Matcher对象配上个新的目标,目标是就该方法的参数;如果不给参数,reset会把Matcher设到当前字符串的开始处。 System.out.println(m.find());// true System.out.println(m.start() + "-" + m.end());// 0-3 System.out.println(m.find());// true System.out.println(m.start() + "-" + m.end());// 4-9 System.out.println(m.find());// true System.out.println(m.start() + "-" + m.end());// 10-13 System.out.println(m.find());// false // find:部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。 // p(m.start() + "-" + m.end()); System.out.println(m.lookingAt());// true System.out.println(m.lookingAt());// true System.out.println(m.lookingAt());// true System.out.println(m.lookingAt());// true // lookingAt 部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。 } @Test public void test7(){ Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})"); String s = "123aa-34345bb-234cc-00"; Matcher m = p.matcher(s); while(m.find()) { System.out.println(m.group()); /** * 123aa * 34345bb * 234cc */ } }}
阅读全文
0 0
- Java之正则表达式
- Java之正则表达式
- Java之正则表达式
- java之正则表达式
- JAVA之正则表达式
- Java 之正则表达式
- java之正则表达式
- java 之 正则表达式
- java之正则表达式
- Java之正则表达式
- Java之正则表达式
- java之正则表达式
- Java之正则表达式
- java之正则表达式
- JAVA之正则表达式
- Java之正则表达式
- java之正则表达式
- java之正则表达式
- 连载 | 理解线性代数03 Ax = b 无解情形
- ECharts饼图属性的学习
- ORDER BY LIMIT 0,1意思
- 心得,python2
- 深入dubbo之ExtensionLoader,灵活的扩展点加载机制
- Java之正则表达式
- 【Weblogic】解决weblogic12.1.2.1启动配置向导工具Configuration Wizard报错问题(修改标准内存参数)
- spinner:获取选中值的三种方法
- Android 给文字添加阴影
- ElasticSearch API for JAVA 学习笔记
- 线程
- js 点击图片出来放大弹窗,再次点击还原
- 无聊的服务员(重复关门)
- dumpcap抓包(python)