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. 【转】javascript 中that的含义示例介绍

    var that = this;,这代表什么意思呢?this代表的是当前对象,var that=this就是将当前的this对象复制一份到that变量中,下面为大家介绍这样做有什么意义 你可能会发现别 ...

  2. iOS开发-VFL(Visual format language)和Autolayout

    AutoLayout不管是在StoryBorad还是在xib中都相对来说比较简单,VFL(Visual  fromat  language)可视化语言基本上用到的比较少,在xCode4时候自动布局的概 ...

  3. hive中关于数据库与表等的基本操作

    一:基本用法 1.新建数据库 2.删除数据库 3.删除非空的数据库 4.指定数据库的位置 LOCATION:指定数据库的位置,不会在系统的默认文件下. 5.在指定数据库中新建表(验证在指定的数据库中可 ...

  4. php--分享插件

    分享插件地址:   http://www.jiathis.com/

  5. 谈谈.NET中常见的内存泄露问题——GC、委托事件和弱引用

    其实吧,内存泄露一直是个令人头疼的问题,在带有GC的语言中这个情况得到了很大的好转,但是仍然可能会有问题.一.什么是内存泄露(memory leak)?内存泄露不是指内存坏了,也不是指内存没插稳漏出来 ...

  6. Sublime text插件使用技巧

    1.CSScomb 一个css代码格式化插件,在css文件中或选中css代码,使用快捷键:  [ctrl+shift+c],即可实现代码的对齐等格式的优化. mac下修改快捷键:  Preferenc ...

  7. SQL Server xtype

    sysobjects 表 在数据库内创建的每个对象(约束.默认值.日志.规则.存储过程等)在表中占一行.只有在 tempdb 内,每个临时对象才在该表中占一行. 列名 数据类型 描述 name sys ...

  8. iOS Block传值

    上个月,针对block恶补了一下,以为自己全部掌握了,其实不尽然. 昨天项目中在下载的时候用到,自己竟然不知道该从何下手,惭愧~ 情景是这个样子的:我写了个下载类,阴老师在调用时,将参数(sid,UR ...

  9. Java学习-022-Properties 文件数据写入

    Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...

  10. 树莓派连接wifi

    使用树莓派,通过无线网卡连接wifi,再通过远程桌面或者ssh的连接树莓派比较方便,本文记录树莓派wifi如何设置. 参考链接: http://www.jianshu.com/p/b42e8d3df4 ...