package RegexTest;

/**
* Created by hu on 2016/3/29.
*/
/*
* Java的正则表达式
在正则表达式中,用\d表示一位数字,如果在其它语言中使用过正则表达式,
就会发现Java对反斜线\的不同处理。在其它语言中\\表示"想要在正则表达式中
插入一个普通的(字面上的)反斜线,请不要给它任何意义"。
而在Java中\\的意思是"想要插入一个正则表达式的反斜线,
所以其后面的字符具有特殊的意义"。例如,想要表达一位数字,
那么正则表达式应该为\\d。如果想要插入一个普通的反斜线,则应该是\\\\。
不过换行和制表符之类的东西只需要使用单反斜线:\n\t
* */
public class IntegerMatch {
public static void main(String[] args){
/*
*如果想要表达“一个或多个之前的字符”,应该使用"+"
*“前面可能有一个负号”,使用"-?",故?的意思是可能有也可能没有
* \\d表示后面跟的是数字
* */
System.out.println("-1234".matches("-?\\d+"));
System.out.println("5678".matches("-?\\d+"));
System.out.println("+911".matches("-?\\d+"));
//因为"+"在正则表达式中有特殊的意义,所以将其转义
System.out.println("+911".matches("(-|\\+)?\\d+"));
}
}

  

package RegexTest;

import java.util.Arrays;

/**
* Created by hu on 2016/3/29.
*/
/*
* String类自带了一个非常有用的正则表达式工具,split()方法,其功能是“将字符串从正则表达式匹配的地方切开”
* */
public class Splitting {
public static String knights="Then, when you have found the shrubbery, you must "
+"cut down the mightiest tree in the forest... "+"with ... a herring!";
public static void split(String regex){
System.out.println(Arrays.toString(knights.split(regex)));
}
public static void main(String[] args){
//按照空格来划分字符串
split(" ");
//\W的意思是非单词字符,\w则表示一个单词字符
split("\\W+");
//字母n后面跟着一个或多个非单词字符
split("n\\W+");
}
}

 

package RegexTest;

/**
* Created by hu on 2016/3/29.
*/
/*
* String.split()还有一个重载的版本,它允许限制字符串分割的次数
* String类自带的最后一个正则表达式工具是替换。你可以只替换正则表达式第一个匹配的子串,或是替换所有匹配的地方。
* */
public class Replacing {
public static String knights="Then, when you have found the shrubbery, you must "
+"cut down the mightiest tree in the forest... "+"with ... a herring!";
public static void main(String[] args){
//只替换第一个符合条件的子串,匹配以字母f开头,后跟多个字符
System.out.println(knights.replaceFirst("f\\w+","located"));
//替换所有符合条件的子串
System.out.println(knights.replaceAll("shrubbery|tree|herring","banana"));
}
}

  创建正则表达式:

这只是常用的一部分

 

package RegexTest;

import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* Created by hu on 2016/3/29.
*/
/*
* 比起功能有限的String类,本人更喜爱构造更能强大的正则表达式对象。只需要导入java.util.regex包,
* 然后使用static Pattern.compile()方法来编译自己的正则表达式即可,它会根据String类型的正则表达式生成
* 一个Pattern对象,接下来把想要匹配的字符串输入到Pattern对象的matcher()方法。matcher()方法会生成一个Matcher
* 对象。
* */
public class TestRegularExpression {
public void testRegularExpression(String regex,String matchStr){
Pattern pattern=Pattern.compile(regex);
Matcher matcher=pattern.matcher(matchStr);
while (matcher.find()){
System.out.println("Match \""+ matcher.group()+"\"at position "+ matcher.start()+"-"+ (matcher.end()-1));
}
}
}

  

package RegexTest;

import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* Created by hu on 2016/3/29.
*/
public class Finding {
public static void main(String[] args){
Matcher m= Pattern.compile("\\w+").matcher("Evening is full of the linnet's wings");
while (m.find()){//find()像迭代器那样前向遍历输入的字符串
System.out.print(m.group() + " ");
}
System.out.println();
int i=0;
while (m.find(i)){//该find能够接收一个整数作为参数,该整数表示字符串中字符的位置,并以其作为搜索的起点。
System.out.print(m.group() + " ");
i++;
}
}
}

  其结果如下:

Java的正则表达式的更多相关文章

  1. java中正则表达式基本用法

    正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为 ...

  2. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  3. Java与正则表达式

    Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...

  4. Java中正则表达式去除html标签

    Java中正则表达式去除html的标签,主要目的更精确的显示内容,比如前一段时间在做类似于博客中发布文章功能,当编辑器中输入内容后会将样式标签也传入后台并且保存数据库,但是在显示摘要的时候,比如显示正 ...

  5. Java面向对象 正则表达式

     Java面向对象 正则表达式 知识概要:                (1)正则表达式的特点 (2)正则表达的匹配 (3)正则表达式的切割,替换,获取 (4)正则表达式的练习 正则表达式:符合 ...

  6. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...

  7. JAVA中正则表达式常用的四个方法

    JAVA中正则表达式处理字符串的四个常用方法:匹配.分割.替换.截取.其跟字符串的常用函数相似,但是使用正则表达式会更简单.更加简洁.下面是具体的例子: public class TestRegex ...

  8. Java对正则表达式的支持(一)

    Java对正则表达式的支持主要体现在String.Pattern.Matcher和Scanner类. 1.Pattern.Matcher 先看一个Pattern和Matcher类使用正则表达式的例子. ...

  9. Java中用正则表达式判断日期格式是否正确

    1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...

随机推荐

  1. 蓝牙--主机接口控制器(HCI)

    I提供对基带控制器和链路管理器的命令以及访问蓝牙硬件的统一接口,它是我们实现自己的蓝牙设备索要接触的第一个蓝牙协议,起着承上启下的作用. 1.概述 如下图所示,HCI通过对链路管理器.硬件状态注册器. ...

  2. 老调重弹:对kvo的封装思路

    关于kvo,kvo能做什么? kvo作为cocoa框架的重要特性之一,在底层框架中被大量使用.在特定的场合使用该特性往往能够带来难以想象的好处,让整个方案变得相当简洁和优雅.比如大名鼎鼎的下拉刷新的s ...

  3. HD 1003 Max Sum 的递归解法

    #include <STDIO.H> typedef struct SU_tag{ SU_tag(){} SU_tag(int a,int b,int c):max_sum(a),left ...

  4. 正则表达式lastIndex属性浅析

    有这样一段代码: var newDateStr = " 11 13:48:18"; var reg = new RegExp("[0-9]+","g& ...

  5. javascript 模式方面的学习

    看了好多网上的文章,基本上得到一个结论:一些写类工具函数或框架的写类方式本质上都是 构造函数+原型 1.用构造函数来定义类属性(字段).2.用原型方式来定义类的方法. 具体文章请参阅 JavaScri ...

  6. Aptana快捷键(方便查询)

    窗口类:Ctrl+ Shift +L 调出快捷键提示Ctrl+ W 关闭当前标签窗口Ctrl+ Shift + W 关闭当前标签窗口Ctrl+ F6 (或者是Aptana的Ctrl+Tab )下一个编 ...

  7. LightOj1056 - Olympics(简单数学题)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1056 题意:已知体育场的形状是由一个矩形+两边的两个部分组成,两边的两个部分是属于同一 ...

  8. Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法

    前文简单介绍了如何通过 json-20141113.jar 提供的功能获取 JSON 的数据,敬请参阅:Java学习-028-JSON 之二 -- 数据读取. 了解学习过 JQuery 的朋友都知道, ...

  9. 深入理解BootStrap之栅格系统(布局)

    1.栅格系统(布局) Bootstrap内置了一套响应式.移动设备优先的流式栅格系统,随着屏幕设备或视口(viewport)尺寸的增加,系统会自动分为最多12列. 我在这里是把Bootstrap中的栅 ...

  10. focus 、blur和focusin,focusout的区别

    $('input').focus(function(){///当前元素触发事件(特指表单) }); $('input').blur(function(){//当前元素触发事件 }); $('div') ...