加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 19:34:02 所属栏目:百科 来源:网络整理
导读:3.import java.util.Arrays; 4.import java.util.regex.Pattern; 5. 6./** 7. * java.util.regex包负责对字符序列进行正则表达式匹配 8. * Pattern负责编译 9. * Matcher负责匹配 10. * --------------- 11. * 正则表达式: 12. *1、元字符 好比char,紧紧代
3.import java.util.Arrays; 4.import java.util.regex.Pattern; 5. 6./** 7. * java.util.regex包负责对字符序列进行正则表达式匹配 8. * Pattern负责编译 9. * Matcher负责匹配 10. * --------------- 11. * 正则表达式: 12. *1、元字符 好比char,紧紧代表一个字符; 13. *2、某些字符,比如、.、*等这样的字符在正则表达式中已经被作为标记使用了,如果你想作为非元字符使用的话就得进行转义,转义的方法是在这些字符前面加, 14. * 比如就变成,.就成为. 15. *3、重复的元字符有:*,+,?,{n},{n,},m},这个标记是用来修饰它前面的那个字符的。 16. *4、字符类,或称为分组[],比如[0-9],[0-9A-Za-z]用-表示范围 17. */ 18.public class PatternDemo1 { 19. public static void main(String[] args) { 20. /**1、元字符的[]*/ 21. //[]属于元字符系列,所谓元字符简单的说就是字符,就是一个char,像bc就不是一个char了 22.// method2(new String[]{"abt","act","adt","abct","bt"},"a[bcd]t"); 23. //[]的区间,-的两头代表区间,多区间这样写,比如[0-9a-zA-Z] 24.// method2(new String[]{"a1t","a3t","a01t","abt","2t"},"a[0-9]t"); 25. //补集用^表示,在二元运算符中这是非的意思,尽管用了^,at还是不能通过,所以元字符[]必须有且仅有一个字符 26.// method2(new String[]{"a0t","a2t","at"},"a[^0246]t"); 27. 28. /**2、元字符的? + * */ 29. //?的目标是它前面的一个字符,元字符?表示它前面的一个字符出现0次或1次 30.// method2(new String[]{"","a","aa","at","a1t"},"a?"); 31. //元字符+的目标是它前面的一个字符,它表示它前面的那个字符出现1次或多次 32.// method2(new String[]{"","aaaaa","a+"); 33. //元字符*的目标是它前面的一个字符,它表示它前面那个字符出现0次或多次,*可以说是?和+的并集 34.// method2(new String[]{"","a*"); 35. 36. /** .元字符能匹配任何字符(换行r除外),所以用.*可以匹配换行外的任何字符串 */ 37.// method2(new String[]{"","a1t","t","r","n"},"."); 38.// method2(new String[]{"",".*"); 39. 40. /** 数量{n},m}*/ 41. //{n}表示它前面的字符重复n次,并且只重复n次,重复n-1次或n+1次都是不可以的 42.// method2(new String[]{"","a{2}"); 43. //{n,}是对{n}的扩展,表示重复n次(包含n次)以上 44.// method2(new String[]{"","a{2,}"); 45. //{n,m}表示数目在n到m范围内,包含两头 46.// method2(new String[]{"","aaa","aaaa",4}"); 47.// method2(new String[]{"12345-1234","12345"},"d{5}-d{4}|d{5}"); 48. // 49.// method2(new String[]{"12345-123","d{5}|d{5}-d{4}"); 50.// method2(new String[]{"211","2[0-4]d"); 51.// method2(new String[]{"1","[01]?dd?"); 52. method2(new String[]{"1","12345","12"},"[0-9]"); 53. 54. } 55. private static void method2(String[] a,String regex){ 56. Pattern p = Pattern.compile(regex); 57. for (int i = 0; i < a.length; i++) { 58. System.out.println(a[i]+","+p.matcher(a[i]).matches()); 59. } 60. } 61. private static void method1(){ 62. String str = "2011-11-12"; 63. String pat = "d{4}-d{2}-d{2}"; 64. System.out.println(Pattern.compile(pat).matcher(str).matches()); 65. 66. String str1 = "a1b22c333d4444e55555f"; 67. //按数字来分割 68. String[] str1Arr = Pattern.compile("d+").split(str1); 69. System.out.println(Arrays.toString(str1Arr)); 70. //数字全部替换成_ 71. System.out.println(Pattern.compile("d+").matcher(str1).replaceAll("_")); 72. //去除所有的空格 73. System.out.println("s去除所有的空格:"+Pattern.compile("s").matcher("aa b c d ").replaceAll("")); 74. System.out.println("5-10个字符:"+Pattern.compile(".{5,10}").matcher("12345").matches()); 75. System.out.println("多匹配:"+Pattern.compile("bhi.*Lucyb").matcher("hi后面不远处跟着一个Lucy").matches()); 76. System.out.println("多匹配2:"+Pattern.compile("^d{5,12}$").matcher("12345678a").matches()); 77. 78. //直接调用String类提供的方法更加的方便 79. System.out.println(Arrays.toString(str1.split("d+"))); 80. System.out.println("2011-11-12".matches("d{4}-d{2}-d{2}")); 81. } 82.}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读