吾爱乐享
个人学习网站

java之学习正则表达式的分组功能及案例

结果示意图

正则表达式的分组功能

正则表达式的分组功能
* 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
1 ((A)(B(C)))
2 (A
3 (B(C))
4 (C)

组零始终代表整个表达式。
B:案例演示
a:切割
需求:请按照叠词切割: “feqqqnxggggggianssssgbe”;
b:替换
需求:我我….我…我.要…要要…要学….学学..学.编..编编.编.程.程.程..程
将字符串还原成:“我要学编程”。

案例代码

 

  1. package com.ifenx8.regex;
  2.  
  3. public class Demo7_Regex {
  4.  
  5. /**
  6. * * A:正则表达式的分组功能
  7. * 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
  8. *
  9. 1 ((A)(B(C)))
  10. 2 (A
  11. 3 (B(C))
  12. 4 (C)
  13. 组零始终代表整个表达式。
  14. B:案例演示
  15. a:切割
  16. 需求:请按照叠词切割: "feqqqnxggggggianssssgbe";
  17. b:替换
  18. 需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
  19. 将字符串还原成:“我要学编程”。
  20. */
  21. public static void main(String[] args) {
  22. demo1();
  23. demo2();
  24. //叠词练习如:aabb 高高兴兴 欢欢乐乐
  25. String s = "高高兴兴";
  26. String regex = "(.)\\1(.)\\2";//表示第一组出现一次第二组出现一次
  27. System.out.println(s.matches(regex));
  28. //练习 abab 如 高兴高兴 学习学习
  29. String s2 = "高兴高兴";
  30. String regex2 = "(..)\\1";//表示第一组有两个字符,这一组出现一次
  31. System.out.println(s2.matches(regex2));
  32. }
  33.  
  34. public static void demo2() {
  35. /*b:替换
  36. 需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程
  37. 将字符串还原成:“我要学编程”
  38. 分析:
  39. 1、首先去掉“.”,用空字符串替换“.”字符
  40. 2、去掉叠词重复的
  41. */
  42. String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
  43. String regex = "\\.+";//设置正则表达式,表示一个或多个“.”;这一步可以和下一步合并,如:String s2 = s.replaceAll("\\.+", "");
  44. String s2 = s.replaceAll(regex, "");//用空字符串替换正则表达式
  45. System.out.println(s2);
  46. System.out.println("===========");
  47. String s3 = s2.replaceAll("(.)\\1+", "$1");
  48. System.out.println(s3);
  49. }
  50. public static void demo1() {
  51. /*a:切割
  52. 需求:请按照叠词切割: "feqqqnxggggggianssssgbe";*/
  53. String s = "feqqqnxggggggianssssgbe";//通过正则的分组功能把字符串重叠的位置切割开
  54. String regex = "(.)\\1+";//表示第一组出现一次到多次
  55. String[] arr = s.split(regex);//将切割后的字符串存入string数组
  56. for (int i = 0; i < arr.length; i++) {//遍历数组
  57. System.out.print(arr[i]);
  58. }
  59. System.out.println();
  60. System.out.println("===========");
  61. }
  62.  
  63. }
  64.  
赞(0) 打赏
未经允许不得转载:吾爱乐享 » java之学习正则表达式的分组功能及案例

评论 抢沙发

评论前必须登录!

 

推荐免费资源共享,个人经验总结学习

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册