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. java RMI

    import java.rmi.*; public interface Hello extends Remote { public String getGreeting() throws Remote ...

  2. JAVA Callable

    Listing -. Calculating Euler’s Number e import java.math.BigDecimal; import java.math.MathContext; i ...

  3. C# DateTime类型和时间戳 互相转换

    /// <summary> /// 时间戳转为C#格式时间 /// </summary> /// <param name=”timeStamp”></para ...

  4. C#程序中从数据库取数据时需注意数据类型之间的对应,int16\int32\int64

    private void btn2_Click(object sender, RoutedEventArgs e)         {             using (SqlConnection ...

  5. Spark Programming--Actions II

    saveAsTextFile saveAsTextFile(path, compressionCodecClass=None) aveAsTextFile用于将RDD以文本文件的格式存储到文件系统中, ...

  6. Selenium2学习-014-WebUI自动化实战实例-012-Selenium 操作下拉列表实例-div+{js|jquery}

    之前已经讲过了 Selenium 操作 Select 实现的下拉列表:Selenium2学习-010-WebUI自动化实战实例-008-Selenium 操作下拉列表实例-Select,但是在实际的日 ...

  7. Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本源代码

    此文主要通过 三种浏览器(Chrome.Firefox.IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解.文中所附源代码于 2015-01-18 20:33 亲测通过, ...

  8. ASINetworkQueue 队列下载

    我们通过一个例子介绍一下请求队列使用,我们设计了一个应用,用户点击GO按钮从服务器同时下载两张图片显示在画面中. 我们直接看看主视图控制器ViewController.h代码如下: #import “ ...

  9. 玩转HTML5移动页面

    (1) 动画雪碧图涉及的动画十分多,用的元素也十分多,请务必使用雪碧图(Sprite)!网上的工具有一些可以帮助你生成雪碧图的工具,例如CssGaga,GoPng等等,自动化构建工具Grunt和Gul ...

  10. jquery中奖实例代码

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...