正则表达式
[原创]巧用System.getProperty()编译现有工程的java文件
摘要: 本文所提供的方法解决了使用JAVA动态编译现有工程中的源文件的简便方法!利用javac编译.java文件(因.java依赖包过多,如果手写要累死了!!这里正好使用:System.getProperty("java.class.path")),动态生成依赖包!
阅读全文
posted @
2012-07-24 23:44 零全零美 阅读(1505) |
评论 (1) 编辑
[原创]正则表达式学习笔记(5):分组、捕获性分组和非捕获性分组
摘要: 问题提出:将格式为:"25/10/2009"的时间转换为"2009-10-25"的格式
问题分析:
1、年份2009、月份10、日25应该做为一个独立的单位,这样我们可以直接知道什么地方匹配的是年、月还是日
2、可以用\d\d\d\d来匹配年份,用\d\d来匹配月份,用\d\d来匹配日
3、应该可以有一个地方存储匹配过的结果,以便于转换
解决问题所必须知道的:
1、分组就是将若干单位(可以是字符,正则表达式等等)组织在一起,成为一个独立的单元,
该单位可以跟独立的字符一样,受量词的控制,分组使用()表示
2、分组分为捕获性分组和非捕获性分组,简单的说捕获性分组就是捕获分组所匹配的内容暂且存储在某个地方,以便下次使用,捕获性分组以(...)表示,有些地方将取得捕获性分组所匹配结果的过程称之为"反向引用",非捕获性分组不捕获分组所匹配的内容,当然也就得不到匹配的结果,非捕获性分组以(?:...)表示,在一些只需要分组匹配但是并不需要得到各个分组匹配的结果时,使用非捕获性分组可以提供匹配速度。
3、在JavaScr
阅读全文
posted @
2009-10-25 13:01 零全零美 阅读(3964) |
评论 (2) 编辑
正则表达式学习笔记(4) 贪婪、惰性和支配量词
摘要: 贪婪量词:
先看整个字符串是不是一个匹配。如果没有发现匹配,它去掉最后字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,那么 再次去掉最后一个字符串,这个过程会一直重复直到发现一个匹配或者字符串不剩任何字符。简单量词都是贪婪量词。
惰性量词:
先看字符串中的第一个字母是不是一个匹配,如果单独着一个字符还不够,就读入下一个字符,组成两个字符的字符串。如果还没有发现匹配,惰性量词继续从字符串中添加字符直到发现一个匹配或者整个字符串都检查过也没有匹配。惰性量词和贪婪量词的工作方式恰好相反。
支配量词:
只尝试匹配整个字符串。如果整个字符串不能产生匹配,不做进一步尝试。
阅读全文
posted @
2009-01-07 14:54 零全零美 阅读(3461) |
评论 (3) 编辑
正则表达式学习笔记(3) 简单量词
摘要: 量词用于指定特定模式出现的次数,这个次数可以是硬性的,如某个字符应该出现4次,如果没有出现四次就是错的,也可以是软性的,如某个字符应该出现0至4次,意思是该字符可以出现,也可以不出现,可以出现一次,两次,也可以出现三次,四次。
阅读全文
posted @
2008-11-29 14:13 零全零美 阅读(1723) |
评论 (3) 编辑
正则表达式学习笔记(2) 多选结构--匹配任意子表达式
摘要: "|":意思是"或",他可以把多个子表达式组合成一个总的表达式,而这个总表达式拥有子表达式的全部能力
阅读全文
posted @
2008-11-21 13:44 零全零美 阅读(3636) |
评论 (2) 编辑
正则表达式学习笔记(1) 行的开始和结束、字符组、连字符、脱字符、用"."去匹配任意字符
摘要: 行的开始和结束 开始符号:^ 结束符号:$ 如:^cat 应该理解为以c作为一行的第一个字符,紧接着是a,然后是t
例如:String str = "catabdcatdetfcat"
^cat : 验证该行以c开头紧接着是a,然后是t
cat$ : 验证该行以t结尾倒数第二个字符为a倒数第三个字符为c
^cat$: 以c开头接着是a->t然后是行结束:只有cat三个字母的数据行
^$ : 开头之后马上结束:空白行,不包括任何字符
^ : 行的开头,可以匹配任何行,因为每个行都有行开头
阅读全文
posted @
2008-11-19 19:36 零全零美 阅读(17735) |
评论 (7) 编辑