Javase——正则表达式

正则表达式的相关使用

java 复制代码
    public static void main(String[] args) {
    //校验QQ号 
        System.out.println("3602222222".matches("[1-9][0-9]{4,}"));
    // 校验18位身份证号        
        System.out.println("11050220240830901X".matches("^([0-9]){7,18}(x|X)?$ 或 ^\\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$"));
    }
// 上面账号都位假

常用正则表达式

正则表达式常见用法------爬虫

字符串中查找匹配规则的关键词

java 复制代码
String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11," +
"因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";

|
//1.获取正则表达式的对象,即创建匹配规则
Pattern p= Pattern.compile("Java\\d{0,2}");
//2.获取文本匹配器的对象
//拿着m去读取str,找符合p规则的子串
Matcher m = p.matcher(str);

//3.m读取完str后,利用.find()循环获取
while(m.find()){
    String s = m.group();
    System.out.println(s);
}

爬取网页里的信息

java 复制代码
public static void main(String[] args) throws IOException {
        // 创建一个URL对象
        URL url = new URL("https://baike.baidu.com/item/%E6%AD%A6%E6%B1%89%E5%B8%82?fromModule=lemma_search-box");
        // 连接上这个网址
        // 细节:保证网络是畅通
        URLConnection conn = url.openConnection();
        // 创建一个对象去读取网络中的数据
        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); // 要确定爬取数据的编码格式
        String line;
        // 获取正则表达式的对象 pattern,即确定字符串匹配规则
        Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]+大学");
        // 在读取的时候每次读一整行
        while ((line = br.readLine()) != null) {
            // System.out.println(line);  这个可以将这个html页面打印下来
            Matcher matcher = pattern.matcher(line); // 扫描一整行,对这一行进行正则校验,得到matcher
            // 输出一行中匹配到的
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
        br.close();
    }

贪婪爬取和非贪婪爬取

String str = "abbbbbbbbbbbbaaaa"

  • 贪婪爬取:在爬取数据的时侯尽可能的多获取数据
    • 正则表达式:ab+
    • 爬取为:abbbbbbbbbbbb
  • 非贪婪爬取:在爬取数据的时侯尽可能的少获取数据
    • ​​​​​​​​​​​​​​​​​​​正则表达式:ab+?
    • 爬取为:ab

字符串方法使用

正则表达式分组使用

相关推荐
BruceXu1 天前
\b 在中文里会静默失效:三个正则坑和一份能用的字符边界方案
正则表达式
阿昭L2 天前
正则表达式
正则表达式·编译原理
波力海苔夹心脆6753 天前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
FRing034 天前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
小白快快跑哦6 天前
python-字符串全解(六):正则表达式-元字符与转义
python·正则表达式·字符串·元字符·转义
小白快快跑哦8 天前
python-字符串全解(六):正则表达式-逻辑运算或
python·正则表达式·字符串·逻辑运算
MoRanzhi12038 天前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
临床数据科学和人工智能兴趣组9 天前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
小白快快跑哦10 天前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
小白快快跑哦11 天前
python-字符串全解(六):正则表达式-修饰符
python·正则表达式·修饰符