正则表达式
来源:互联网 发布:it招标文件 编辑:程序博客网 时间:2024/05/16 09:40
正则表达式主要用于对字符串的处理,主要用于字符串的匹配,分割,替换
规则:(我自己总结的)
1:按照括号
()表示分组,(.)\1意思是第二个字符与第一个字符一致
[ ] 表示可选,[134]意思1,3,4中任意一个 [a-z]意思是a,b....z中的任意一个
{ }表示边界 {4}上下边界都是4,必须四个字符,{4,}至少4个,{4,6} 4到6个,与前边的组合使用比如:
[0-9]{4,8} 表示4到8个数
2:按照+ * ?
预定义字符类
\d数字:[0-9]\D非数字: [^0-9]\s空白字符:[ \t\n\x0B\f\r]\S非空白字符:[^\s]\w单词字符:[a-zA-Z_0-9]\W非单词字符:[^\w]\b单词边界\B非单词边界\A输入的开头\G上一个匹配的结尾\Z输入的结尾,仅用于最后的结束符(如果有的话)\z输入的结尾以下代码是对正则表达式的运用
import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main {public static void main(String[] args) {/* * 1 * 字符匹配 */System.out.println(testMatches("12345323", "1\\d{4,14}"));System.out.println(testMatches("22345323", "1\\d{4,14}"));System.out.println(testMatches("22345323", "[125]\\d{4,14}"));/* * 2 * 字符截取 */String str = "c:\\java\\test";String[] strs = testSprite(str, "\\\\");//\\借钱去,\是转义字符,要转义一个\,需要\\,两个\\\\for (String newstr : strs) {System.out.println(newstr);}str = "c.java.test";strs = testSprite(str, "\\.");//。截取。 .代表所有字符for (String newstr : strs) {System.out.println(newstr);}str = "c java test 22";//空格截取,可能多个空格,所以" +"strs = testSprite(str, " +");for (String newstr : strs) {System.out.println(newstr);}str = "dwadadw222a2xxaddawddwadq3aseaa";//叠词截取()分组,1表示第一组,需要转义,所以\1,(.)的意思是第二个字符跟第一个字符一致strs = testSprite(str, "(.)\\1+");for (String newstr : strs) {System.out.println(newstr);}/* * 3 * 字符替换 */str="I a2m haa23pp55y";System.out.println(testreplaceAll(str, "\\d", ""));str="A beeeautttiful ggirll that I wwant ttoo bee myy ggiiirl frrieeend may coome too minee unniverssity";System.out.println(testreplaceAll(str, "(.)\\1+", "$1"));/* * 获取能匹配的字符 */List<String> list=testFind("After two days , ACM compition will be go","\\b[a-zA-z]{3}\\b");//必须是三个字符,前后两边是单词字符Iterator it=list.iterator();while(it.hasNext()){System.out.println(it.next());}}//Matcher是真正的强大public static LinkedList<String> testFind(String str,String regex){LinkedList<String> list=new LinkedList<String>();//获取PatternPattern p=Pattern.compile(regex);//获取MatcherMatcher m=p.matcher(str);while(m.find()){list.add(m.group());}return list;}public static boolean testMatches(String str, String regex) {return str.matches(regex);}public static String[] testSprite(String str, String regex) {return str.split(regex);}public static String testreplaceAll(String str, String regex,String replacement) {return str.replaceAll(regex, replacement);}}
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法
- myeclipse优化方案 myeclipse 10 优化
- Java程序员常用的各种快捷键和命令:
- iOS Provisioning Portal概述
- Android ListView页眉页脚效果
- 正则表达式
- Scala中的语言特性是如何实现的(1)
- Android Permission权限通知
- CSSMERR_TP_NOT_TRUSTED 解决方法
- Velocity编辑插件 Veloeclipse
- 并查集的应用(2)——判断是否为树
- 门内门外看招聘
- 支持录音的声卡驱动程序及录音放音测试程序
- PC客户端与Android服务端的Socket同步通信(USB)