Java的正则表达式
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的正则表达式的更多相关文章
- java中正则表达式基本用法
正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为 ...
- java基础---->java中正则表达式二
跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...
- Java与正则表达式
Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...
- Java中正则表达式去除html标签
Java中正则表达式去除html的标签,主要目的更精确的显示内容,比如前一段时间在做类似于博客中发布文章功能,当编辑器中输入内容后会将样式标签也传入后台并且保存数据库,但是在显示摘要的时候,比如显示正 ...
- Java面向对象 正则表达式
Java面向对象 正则表达式 知识概要: (1)正则表达式的特点 (2)正则表达的匹配 (3)正则表达式的切割,替换,获取 (4)正则表达式的练习 正则表达式:符合 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- JAVA中正则表达式常用的四个方法
JAVA中正则表达式处理字符串的四个常用方法:匹配.分割.替换.截取.其跟字符串的常用函数相似,但是使用正则表达式会更简单.更加简洁.下面是具体的例子: public class TestRegex ...
- Java对正则表达式的支持(一)
Java对正则表达式的支持主要体现在String.Pattern.Matcher和Scanner类. 1.Pattern.Matcher 先看一个Pattern和Matcher类使用正则表达式的例子. ...
- Java中用正则表达式判断日期格式是否正确
1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...
随机推荐
- WIN10 ANDROIDSTUDIO1.2 安装完首次启动报错
环境 ACER NOTEBOOK WIN10 ANNDROID 1.2 解决方案: 在Android Studio安装目录下的 bin 目录下,找到 idea.properties 文件,在文件最后 ...
- APP 上架苹果应用商城
http://www.360doc.com/content/15/0203/15/19663521_445974056.shtml http://jingyan.baidu.com/article/4 ...
- Android 4.2蓝牙介绍
蓝牙一词源于公元十世纪丹麦国王HaraldBlatand名字中的Blatand.Blatand的英文之意就是Blue tooth.这是因为这位让丹麦人引以为傲的国王酷爱吃蓝莓以至于牙龈都被染成蓝色.由 ...
- 《linux内核设计与实现》读书笔记第五章——系统调用
第5章 系统调用 操作系统提供接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行. 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 该层主要作用有三个: 为用户空间提供了 ...
- HBase的数据迁移(含HDFS的数据迁移)
1.启动两个HDFS集群 hadoop0,hadoop1,都是伪分布式的集群 2.启动hadoop3的zookeeper与hbase 注意点:需要开启yarn服务,因为distcp需要yarn. 3. ...
- Android开发笔记:eclipse导入java项目
若下载的工程文件中含有 .project 则点击菜单栏file-import,选择General-existing project into workplace,点击下一步 选择需要导入的项目文件夹
- convert Timestamp to Real time
select r.ring_buffer_address, r.ring_buffer_type, dateadd (ms, r.[timestamp] - sysinfo.sqlserver_sta ...
- Declare Cusror of SQLServer
Defines the attributes of a Transact-SQL server cursor, such as its scrolling behavior and the query ...
- 常用公共的css的样式
html{-webkit-text-size-adjust:none; /*解决chrome浏览器下字体不能小于12px*/} body{overflow-x: hidden; font-size:1 ...
- js的运算
1.表达式 表达式是EMCAscript中的一个“短语”,解释器会通过计算把它转换成一个值.最简单的表达式是字面量或者变量名. 2.前置递增(++box)和后置递增(box++)的区别 看下面一段代码 ...