当前位置: 首页 > news >正文

JavaRegexImprove练习(1) (2024.7.22)

        ImproveExercise1

package RegexImprove20240722;
import java.util.Scanner;
public class ImproveExercise {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串");String str = sc.nextLine();//  需求:需要把类似:我要学学编编编编程程程程程程替换为我要学编程// (.)是一个捕获组,可以匹配所有字符// \\1表示匹配前面的捕获组一次或多次 \\1是对第一个捕获组的引用// "(.)\\1+":整体意思是匹配任何连续重复的字符// 当成功匹配到所有的连续重复的字符之后,会用$1在正则表达式之外引用第一组String result = str.replaceAll("(.)\\1+", "$1");System.out.println(result);}
}

        RegexImprove1

package RegexImprove20240722;
import java.util.Scanner;
public class RegexImprove1 {public static void main(String[] args) {// 捕获分组()Scanner sc = new Scanner(System.in);
//        System.out.println("请输入一个字符串");
//        String str = sc.nextLine();
//        // 分组括号,()相当于一组,以左括号为分组的顺序,\1相当于把第一组的数据用来再匹配一次
//        if (str.matches("(.).+\\1")) {
//            System.out.println("合法字符串");
//        } else {
//            System.out.println("非法字符串");
//        }// 需求2:判断一个字符串的开始部分和结束部分是否一致?可以有多个字符
//        System.out.println("请输入一个字符串");
//        String str = sc.nextLine();
//        if (str.matches("(.+).+\\1")) {
//            System.out.println("合法字符串");
//        } else {
//            System.out.println("非法字符串");
//        }// 需求3:判断一个字符串的开始部分和结束部分是否一致?开始部分内部每个字符也需要一致System.out.println("请输入一个字符串");String str = sc.nextLine();// 分组括号分组规则是看左括号,而不是一个完整的括号,看且仅看左括号// 所以说可以用(.)来代表第一个数据\\2其实是(.)而不是((.)\2*),((.)\2*)是\\1,相当于第一部分if (str.matches("((.)\\2*).+\\1")) {System.out.println("合法字符串");} else {System.out.println("非法字符串");}}
}

        RegexImprove2

package RegexImprove20240722;
import java.util.Scanner;
public class RegexImprove2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入字符串");String str = sc.nextLine();// 正则表达式可以用(?i)来忽略大小写,(?i)表示忽略后面的大小写if (str.matches("(?i)[a-z]+")) {System.out.println("合法字符串");} else {System.out.println("非法字符串");}}
}

        RegexImprove3

package RegexImprove20240722;
import java.util.Scanner;
public class RegexImprove3 {public static void main(String[] args) {// 非捕获分组Scanner sc = new Scanner(System.in);
//        String regex = "[1-9]\\d{16}(?:\\d|x|x)\\1";
//        System.out.println("请输入身份证号");
//        String id = sc.nextLine();
//        System.out.println(id.matches(regex)); // regex中\\1报错了,因为(?:)不是捕获分组,所以说不存在第一组String rightRegex = "[1-9]\\d{16}[\\dxX]";System.out.println("请输入身份证号");String id = sc.nextLine();System.out.println(id.matches(rightRegex));}
}

 

 

 

http://www.lryc.cn/news/405330.html

相关文章:

  • 基于YOLO模型的鸟类识别系统
  • WebRTC通话原理(SDP、STUN、 TURN、 信令服务器)
  • 面试场景题系列--(1)如果系统的 QPS 突然提升 10 倍该怎么设计?--xunznux
  • 【数学建模】——前沿图与网络模型:新时代算法解析与应用
  • 视频分帧【截取图片】(YOLO目标检测【生成数据集】)
  • Redis7(二)Redis持久化双雄
  • 发布支持TS的npm包
  • 计算机视觉9 全卷积网络
  • 02.C++入门基础(下)
  • 【数据结构】探索排序的奥秘
  • 数据结构面试知识点总结3
  • python-爬虫实例(5):将进酒,杯莫停!
  • AGI 之 【Hugging Face】 的【从零训练Transformer模型】之二 [ 从零训练一个模型 ] 的简单整理
  • 十大排序的稳定性和时间复杂度
  • 【系列教程之】1、点亮一个LED灯
  • 搜维尔科技:Manus Metagloves使用精确的量子跟踪技术捕捉手部每一个细节动作
  • 机器学习 | 阿里云安全恶意程序检测
  • python打包exe文件-实现记录
  • 基本的DQL语句-单表查询
  • Vue3 对比 Vue2
  • 2024中国大学生算法设计超级联赛(1)
  • offer题目51:数组中的逆序对
  • 45、PHP 实现滑动窗口的最大值
  • 【计算机视觉】siamfc论文复现实现目标追踪
  • 数学建模学习(111):改进遗传算法(引入模拟退火、轮盘赌和网格搜索)求解JSP问题
  • Golang | Leetcode Golang题解之第241题为运算表达式设计优先级
  • Unity客户端接入原生Google支付
  • Spring Cloud之五大组件
  • 在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1
  • redis的学习(一):下载安装启动连接