JAVA-正则表达式与爬虫

1 正则表达式

不用记:Java 正则表达式 | 菜鸟教程

示例:

public static void main(String[] args) {

        //匹配身份证号
        //350302 1985 07 04 018X
        //前6位: 第一位不能是0,后五位随机     [1-9]\\d{5}
        //年份: 开头19|20 后两位随机         ((19)|(20))\\d{2}
        //月份:01-09|10-12                ((0[1-9])|(1[0-2]))
        //日期:01-09|10-19|20-29|30-31    ((0[1-9])|([12][0-9])|(3[01]))
        //后四位:前三位随机数,后一位数字或X或x  \\d{3}[\\dXx]
        String regex="[1-9]\\d{5}((19)|(20))\\d{2}((0[1-9])|(1[0-2]))((0[1-9])|([12][0-9])|(3[01]))\\d{3}[\\dXx]";

        System.out.println("620902197501170729".matches(regex));//T
        System.out.println("35030219850704018X".matches(regex));//T
        System.out.println("42068319460201022x".matches(regex));//T
        System.out.println("340304186603307579".matches(regex));//F
        System.out.println("040426195606261248".matches(regex));//F
        System.out.println("360483198213247775".matches(regex));//F
    }

2 爬虫

此处做简单学习即可,写爬虫用Python不香?

java.util.regex 包是 Java 标准库中用于支持正则表达式操作的包:

  • Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
  • Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
  • PatternSyntaxException:PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

示例1:



import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String content="JAVA 是一种广泛使用的编程语言,由Sun Microsystems于1995年首次发布。" +
                "随着技术的发展,Java 经历了多个版本的更新,包括Java 8于2014年3月发布,主要引入了Lambda表达式、Stream API和新的时间日期API;" +
                "Java 9于2017年9月发布,最显著的特性是模块系统(Project Jigsaw)和JShell,增强了开发的灵活性;" +
                "Java 10于2018年3月发布,加入了局部变量类型推断(var)和应用程序类数据共享;" +
                "Java 11于2018年9月发布,是一个长期支持版本(LTS),引入了新的API和多项性能增强;";

        //获取正则表达式对象
        Pattern p = Pattern.compile("(?i)(JAVA) \\d{0,2}");
        //获取文本匹配器对象
        Matcher m =p.matcher(content);

        int count=0;
        while (m.find()){
            String s =m.group(0);
            System.out.println(s);
            count++;
        }
        System.out.println("count:"+count);
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇