正则表达式学习总结, 附java源码
组的概念, 提取组信息
/**
* 正则表达式可以划分不同的组,取出组的名称,括号即可, 即所谓的捕获组
* 1. 相关知识: 不捕获用(?:expression) 表示这组不需要捕获
*
*
*/
public static void groupTest() {
String src = "xxxxxxxxxx2009-1-17-19-07-16yyyyy2001-02-18-19-07-16q";
String regex = "(\\w{4})(\\d{4}-\\d{1,2}-\\d{1,2}-\\d{1,2}-\\d{1,2}-\\d{1,2})";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(src);
displayMatchResult(matcher);
}
或关系的表达
/**
* 1. 单个字符或者数字的"或关系"用[]即可, 这里不做展示
* 2. 多个字符的"或关系"用括号展示
* 3. 提取括号的内容, 请看下面的例子, 关注group的index
* 4. 这里的Group可以不捕获,不捕获的方式是(?:expression)
* 5. 这里推出的问题是:"非逻辑关系怎么搞"(与逻辑关系就算了, 默认的都是与逻辑关系)
* 6. 非关系, 归类到"零宽度"中
*
*/
public static void groupOr_Nested()
{
String src = "x1111abcxxxyyy";
String regex = "((?:x1111|y2222)abc)xxx";
//String regex = "((x1111|y2222)abc)xxx";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(src);
displayMatchResult(matcher);
}
贪婪和非贪婪匹配
/**
* 贪婪匹配和非贪婪匹配的比较
* 这是一个加不加问好的问题了
*/
public static void greedCompare()
{
String src = "<p class=\"author\"> <strong>admin </strong></strong> 发表于 2009-5-14 16:49 </p><h3>提取帖子内容 </h3>“提取这句话”<br /> <br />";
/**非贪婪匹配用下面*/
//String regex = "<strong>(.*?)</strong>";
/**贪婪匹配用下面 */
String regex = "<strong>(.*)</strong>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(src);
displayMatchResult(matcher);
}
替换字符
/**
* 替换, 该方法很水, 简单的可用, 复杂的
* 应该通过match.star(groupIndex)来找位置比较方便
*/
public static void replaceMatch()
{
String src = "xxxxxxxxxx200
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
篇博客是csdn首页里的一篇博客,感觉写的不错,应该对那些迷茫的朋友有很多帮助
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gangqinjiawang/archive/2009/07/14/4346027.aspx
Java 软件架构师所要需的东西
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。 ......
1、面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重 ......
Java数组是一个Java对象,数组的长度是固定的,在同一个数组中只能够存放相同类型的数据,数组可以存放基本类型的数据,也可以存放引用类型的数据。在创建数组对象时,必须指定数组对象的长度,数组一旦创建,它的长度就不能再变
(1)创建数组对象(即new一个数组时)要指定数组的长度,数组的长度一旦指定 ......
Throwable
Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。
两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情 ......