Java按正则提取字符串
在Java开发中,有时会遇到一些比较别扭的规则从字符串中提取子字符串,规则无疑是写正则表达式来表达了,那按照正则来提取子字符串就会用到java.util.regex包。
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。
Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。
Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。
首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。
package com.founder.mrp.util; import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 与String相关的工具方法集
* @author Jimmy
*
*/
public class StringUtil { public static String getMatcher(String regex, String source) {
String result = "";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
result = matcher.group(1);
}
return result;
} public static void main(String[] args) {
String url = "http://172.12.1.123/test.txt";
String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})";
// String regex = "(\\d{1,3}\\.){1,3}(\\d{1,3})";
System.out.println(getMatcher(regex,url));
} }
参考资料:
Pattern、Matcher: http://www.cnblogs.com/playing/archive/2011/03/15/1984943.html
正则:http://deerchao.net/tutorials/regex/common.htm
Java按正则提取字符串的更多相关文章
- python3正则提取字符串里的中文
# -*- coding: utf-8 -*- import re #过滤掉除了中文以外的字符 str = "hello,world!!%[545]你好234世界..." str ...
- java 正则提取字符串中的电话号码
public static void test2() { String str = "张三:13539558064,李四:15626829748,赵六:13718952204"; ...
- 使用正则提取字符串中URL等信息
一.说明 背景:最近在做同步京东商品信息时遇到一个问题,同步后的商品详情无法在富文本中修改,强制修改会导致图片无法正常显示,研究发现详情中的图片是在css的作为背景图指定的. 解决:经过多次尝试,最后 ...
- C# 正则提取字符串(提取一个或多个)
实例一:string result = ""; string str = "大家好! <User EntryTime='2010-10-7' Email='zhan ...
- 正则提取字符串IP地址,返回IP列表
public class Main { public static void main(String args[]) { String str = "10.11.90.1 asedfa 1. ...
- 使用Java正则表达式提取字符串中的数字一例
直接上代码: String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71 String s = monster. ...
- [原]Java面试题-将字符串中数字提取出来排序后输出
[Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...
- 编程提取字符串"Java is a programming language"中的各个单词,并打印输出。
import java.lang.String; import java.util.StringTokenizer; public class StringGetWord{ /* 编程提取字符串&qu ...
- java正则表达式应用--验证字符串是否为数字(转载)
首先说一下java正则表达式的重点概念: 第一.相关类:Pattern.Matcher 第二.典型的调用顺序是 Pattern p = Pattern.compile("a*b") ...
随机推荐
- 认识copy关键
首先先引用阳神Sunny博客中的一道面试题: 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造 ...
- Nginx高性能服务器安装、配置、运维 (1) —— Nginx简介
一.Nginx 简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器. Nginx特点 ...
- 关于Modelsim仿真速度的优化
如果在不需要波形,只需要快速知道结果的情况下,可以用优化选项.这适用于做大量case的仿真阶段.因为这一阶段多数case都是通过的,只需要快速确认即可,然后把没通过的case拿出来做全波形的仿真调试. ...
- xml、xhtml、html、dhtml的区别
1.XML 可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门.客户和供应商之间进行交换,实现动态内 ...
- w3c 学习html DOM
什么是DOM? DOM是W3C标准,定义了访问HTML 和 XML文档的标准 W3C 文档对象模型(DOM)是中立于平台和语言接口,它允许程序动态的访问和更新文档的内容.结构和样式. W3C DOM ...
- Hibernate缓存杂谈
1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能.Hibernate在 ...
- Nuget 自动上传
1:参考https://newnugetpackage.codeplex.com/wikipage?title=NuGet%20Package%20To%20Create%20A%20NuGet%20 ...
- Mysql笔记【1】-数据库的基本操作(创建/删除)
1.创建数据库 创建数据库(如果存在,则报错) #创建名称为test的数据库 create database test 查询创建完的数据库 show databases 2.删除数据库 删除数据库(如 ...
- Java注解知识点摘抄
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解. Java1.5引入了注解,当前许 ...
- DbUtil组件及C3P0数据库连接池组件的使用
DbUtils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能. 使用c ...