java正则表达式使用
用正则表达式进行字符串校验,截取十分方便,项目开发中灵活的使用正则表达式能让你的代码简洁优雅并且不易出错。在实际的应用中,掌握以下几点知识就可以应付绝大多数的开发场景了。
1、 字符串开始结束匹配:^$。
^abc$完全匹配字符串abc。
2、 特定类型字符匹配:数字\d,数字字母下划线\w,空格\s,任意字符.。
3、 重复匹配:重复0次或1次?,重复1次及以上+,重复0次及以上*,重复m到n次{m,n},重复m次以上{m,}。
\d+表示有一个或多个数字组成的字符串,比如0,10,110。
4、 单个字符或[],|。
[ab]表示a或b,a|b表示a或b。
5、 字符串或(|)。
(ab|bc)表示ab或者bc。
6、 非[^]。
[^a]表示不是a的一个字符;[^ab]表示不是a且不是b的一个字符;[^ab]+表示一个或多个字符,且每个字符都不是a或b。
Java中,String.matches(regex)进行字符串正则表达式校验;String.replaceAll()进行正则表达式替换;Pattern,Matcher则可以进行正则表达式匹配,查找,替换等一系列操作。下面是代码实例:
package com.coshaho.learn.reg; import java.util.regex.Matcher;
import java.util.regex.Pattern; public class RegexTest
{
public static void main(String[] args)
{
// 重复
String regex = "^\\s*\\d+{1,3}\\w+ .?$";
String str = " 110hkx_ @";
System.out.println(str.matches(regex)); // 字符或
regex = "^[abc]$"; // 等价于^a|b|c$
str = "b";
System.out.println(str.matches(regex)); // 字符串或
regex = "^(ab|cd)$";
str = "ab";
System.out.println(str.matches(regex)); // 非
regex = "^[^abc]$";
str = "d";
System.out.println(str.matches(regex)); regex = "\\[([^\\[\\]]+)\\]\\.\\[([^\\[\\]]+)\\]";
str = "[device].[cpu] + [interface].[tranffic] >= 2";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str); while(matcher.find())
{
System.out.println(matcher.group());
if(2 == matcher.groupCount())
{
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
}
} regex = "\\d+";
str = "abc123def456hijk789xyz";
System.out.println(str.replaceAll(regex, " "));
}
} /**
输出值
true
true
true
true
[device].[cpu]
device
cpu
[interface].[tranffic]
interface
tranffic
abc def hijk xyz
**/
java正则表达式使用的更多相关文章
- java正则表达式
java正则表达式 1.Java正则表达式的语法与示例: http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式: http://www.runo ...
- Java正则表达式入门——转自RUNOOB.COM
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...
- Java 正则表达式详解
Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- java正则表达式【大全】
[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- Java正则表达式的应用
在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...
- Java正则表达式实用教程
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSynta ...
随机推荐
- webstrom 2017 安装及配置
下载安装:http://www.jetbrains.com/webstorm/ 激活:安装完成后,在打开的 License Activation 窗口中选择 License server. 在输入框输 ...
- RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels
和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却 ...
- java.lang.NumberFormatException: For input string: "${jdbc.maxActive}"
一.问题 使用SpringMVC和MyBatis整合,将jdbc配置隔离出来的时候出现下面的错误,百度了很久没有找到解决方法,回家谷歌下,就找到解决方法了,不得不说谷歌就是强大,不废话,下面是具体的错 ...
- Java中获取资源文件的方法总结
这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...
- vim 编辑基础使用-----linux编程
Linux系统编程: VIM编辑器 | VIM Introduce 学习 vim 并且其会成为你最后一个使用的文本编辑器.没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用. 我建议下面这 ...
- 基本入门ISD9160开发指南
1 整体认识ISD9160 其详细介绍肯定看他的数据手册.抛开一切觑头功能,我们第一步就把它当做一个M0单片机来使用了.它有IO口,有串口,有SPI等,那就像用其它M0 一样的使用它呗.这个没啥难度了 ...
- java 对 汉字排序(按照拼音字母排序)
业务场景: 一个list集合,里面add了若干个实体类,针对该实体类排序的属性为String. 使用技术,自定义list排序(JDK自带),重写Comparator接口的compare方法,汉字转拼音 ...
- java上传并压缩图片(等比例压缩或者原尺寸压缩)
本文转载自http://www.voidcn.com/article/p-npjxrbxr-kd.html 先看效果: 原图:1.33M 处理后:27.4kb 关键代码; package codeGe ...
- Linux记录用户shell命令
在/etc/profile中添加下面内容: export LC_ALL=C TMOUT=3600 HISTFILESIZE=2000 HISTSIZE=2000 HISTTIMEFORMAT=&quo ...
- stylus--css 框架使用方法
Stylus是一款需要编译的css语言,所以其本身文件不能被html直接调用,需要要编译为css文件后再进行日常的加载. stylus是一款优秀的css编译语言,需要node.js支持,第一步需要 ...