`
eneasy
  • 浏览: 128468 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Java正则表达式2

    博客分类:
  • java
阅读更多

分组(groups)

 

字符

说明

(X)                                 

将(X)作为一个单元进行匹配

\n

与第n个分组的匹配

    (X) 作为一个组合单元,比如,要查询<a href=\"index.html\">index</a><a href></a>间的数据,可写作<a.*href=\".*\">(.+?)</a> 

    可以使用分组来定义子表达式,将分组封装在()中,如([+-]?)([0-9]+)。然后你可以让模式匹配符(the pattern matcher)返回每个分组的匹配,或者使用\n来回引分组(refer back to a group with \n),其中n是组号,group 0 表示整个表达式,group 1表示第一个被括起来的group,以此类推。所以A(B(C))D 里面有三个groupgroup 0ABCDgroup 1BCgroup 2C

    例如,给定模式((1?[0-9]):([0-5][0-9]))[ap]m,并且输入11:59am,Matcher对象报告下列分组如下:

 

分组索引

起始

结束

字符串

0

0

7

11:59am

1

0

5

11:59

2

0

2

11

3

3

5

59

   又如:要从格式为“June 26, 1951”中提取出月份部分june,用来匹配的正则表达式可以是:[a-zA-Z]+\s+[0-9]{1,2},\s*[0-9]{4},接下来如何提取出june部分呢?只需加上一个圆括号创建一个组,然后用\1提取出它的值,如下:

([a-zA-Z]+)\s+[0-9]{1,2},\s*[0-9]{4}

示例

验证是否为邮箱地址 

Pattern pattern = Pattern.compile("[*\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",
Pattern.CASE_INSENSITIVE); 

去除html标记 

Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL); 

Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>"); 

String string = matcher.replaceAll(""); 

查找html中链接字符串 

Pattern pattern = Pattern.compile("href=\"(.+?)\""); 

截取http://地址 

Pattern pattern = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+"); 

匹配<title>XXX</title>中的内容

 Pattern p = Pattern.compile("<title>([^<]*)</title>");//匹配<title>开头,</title>结尾的文档 

 Matcher m = p.matcher(html );//开始编译,html 为要匹配的文本 

 while (m.find()) 

 

     list.add(m.group(1));//获取被匹配的部分 

 

从下列格式的日志中提取IP和时间

192.168.16.233 --- [26/Feb/2004:10:10:03 -0500]

get /index.html http/1.0” 200 15

IP部分:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

日志部分:\[[^]]+\],说明:\[匹配开始[符号,[^]]+匹配]之前的所有字符,\]匹配结束]符号。

现在,把上述两个正则表达式加上分组符号(圆括号)后合并成单个表达式,这样就可以从日志记录提取出IP地址和时间。注意,为了匹配“- -”(但不提取它),正则表达式中间加入了“ \s?\-\-\-\s?”。完整的正则表达式为:

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s?\-\-\-\s?(\[[^]]+\])

 

EclipseHtml替换

要将.html中所有如下格式的字符串:

<input type="text" value="${remark}"> 

替换成如下的格式:

<input type="text" value="${remark}" name="remark">

也就是添加一个name=""的字符串,“”中的内容跟${}中的内容是一样的。

 

方法:使用eclipsefind/replace操作中使用正则表达式。

Find: value=\".*\$\{(.*)\}\"

Replace: value=\"\$\{\1\}\" name=\"\1\"

 

替换“”中的内容

要把如下文件中的“”中的内容替换掉。

 <FApieceAmt java-class="java.lang.Double">1.0</FApieceAmt>

<FApieceClmDay java-class="java.lang.Integer">2</FApieceClmDay>

<FBasicPrm java-class="java.lang.Double">3.0</FBasicPrm>

<FNclmAmt java-class="java.lang.Double">4.0</FNclmAmt>

<FNrdrPrmVar java-class="java.lang.Double">5.0</FNrdrPrmVar>

答案:

Pattern p=Pattern.compile(" java-class=([^>]+)>");

//[^>]+匹配>之前的所有字符。

 

Html链接替换2

要将.htm文件中所有如<a href=”*http://www.myweb.com/index.html”> </a>中的 *http://www.myweb.com替换成http://www.sina.comc.cn.

 

匹配:<\s*a \s+ href\s*=\s*”* http://www.myweb.com/([^”]+)”> 

替换:<a href=”*http://www.sina.com.cn/(\1)”>

说明:通过\1来取得()中的内容。

处理方法同EclipseHtml替换.

 

Html<font>元素解析

分析HTML页面内FONT标记的所有属性。例如FONT标记如下所示:

<font face="Arial,serif" size="+2" color="red" >

程序将按照如下形式,输出每一个FONT标记的属性:

face=Arial,serif
size=+2
color=red

答案:

1.先从<font>中提取属性值,:face="Arial,serif" size="+2" color="red"

匹配:<\s*font\s*([^>]*)\s*>,通过\1取得匹配值。

2.将提取字符串分解成键值对,使用如下正则表达式:

匹配:([a-z]+)\s*=\s*"([^"]+)",通过\1取得键,\2取得值。

 

 

 

 

lxm整理,只为知识共享之用,所有内容均来自网络,内容归所有者。

 

2009.04.16

 

分享到:
评论

相关推荐

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    使用Java正则表达式分析处理日志

    本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    Java 正则表达式 图片版

    Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~

    常用java正则表达式

    ### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    Java正则表达式测试工具

    Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...

    Java 正则表达式库

    Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...

    java正则表达式使用例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...

    Java正则表达式应用总结

    Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....

    Java正则表达式入门介绍.ppt

    Java正则表达式是编程语言Java中用于处理文本的强大工具,它源于早期的神经网络理论和数学家Stephen Kleene的工作,后来在Unix系统中得到广泛应用。在Java中,正则表达式提供了简洁的方法来匹配、查找、替换和提取...

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    Java正则表达式_动力节点Java学院整理

    Java正则表达式详解 Java正则表达式是Java语言中的一种模式匹配技术,用于匹配、查找、替换和判断字符串。它是一种强大的工具,能够帮助开发者快速处理字符串相关的任务。 什么是正则表达式? 正则表达式是一种...

    Java正则表达式详解(非常适合入门

    ### Java正则表达式详解 #### 一、正则表达式的重要性及应用 正则表达式,作为一种强大的文本处理工具,对于程序员而言是不可或缺的基本技能之一。它在文本的匹配、搜索和替换等方面发挥着不可替代的作用。尤其在...

Global site tag (gtag.js) - Google Analytics