Heim Web-Frontend js-Tutorial Ausführliche Erläuterung der Anwendungsfälle von Pattern+Matcher

Ausführliche Erläuterung der Anwendungsfälle von Pattern+Matcher

Jun 09, 2018 pm 02:10 PM
java

这次给大家带来Pattern+Matcher使用案例详解,Pattern+Matcher使用的注意事项有哪些,下面就是实战案例,一起来看一下。

获取需要使用到正则的两个对象:

使用的是用正则对象Pattern 和匹配器Matcher。

用法:

范例:

1

2

3

 Pattern p = Pattern.compile("a*b");

 Matcher m = p.matcher("aaaaab");

 boolean b = m.matches();

Nach dem Login kopieren

步骤:

1,先将正则表达式编译成正则对象。使用的是Pattern类一个静态的方法。compile(regex);

2,让正则对象和要操作的字符串相关联,通过matcher方法完成,并返回匹配器对象。

3,通过匹配器对象的方法将正则模式作用到字符串上对字符串进行针对性的功能操作

需求:获取由3个字母组成的单词。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public static void getDemo()

{

  String str = "da jia zhu yi le,ming tian bu fang jia,xie xie!";

  //想要获取由3个字母组成的单词。

  //刚才的功能返回的都是一个结果,只有split返回的是数组,但是它是把规则作为分隔符,不会获取符合规则的内容。

  //这时我们要用到一些正则对象。

  String reg = "\\b[a-z]{3}\\b";

  Pattern p = Pattern.compile(reg);

  Matcher m = p.matcher(str);

  while(m.find())

  {

    System.out.println(m.start()+"...."+m.end());

    System.out.println("sub:"+str.substring(m.start(),m.end()));

    System.out.println(m.group());

  }

//   System.out.println(m.find());//将规则对字符串进行匹配查找。

//   System.out.println(m.find());//将规则对字符串进行匹配查找。

//   System.out.println(m.group());//在使用group方法之前,必须要先找,找到了才可以取。

}

Nach dem Login kopieren

校验邮件

1

2

3

4

5

6

7

8

9

public static void checkMail()

{

  String mail = "abc123@sina.com.cn";

  mail = "1@1.1";

  String reg = "[a-zA-Z_0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";

  reg = "\\w+@\\w+(\\.\\w+)+";//简化的规则。笼统的匹配。

  boolean b = mail.matches(reg);

  System.out.println(mail+":"+b);

}

Nach dem Login kopieren

网络爬虫 (获取邮箱)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

class GetMailList 

{

public static void main(String[] args) throws Exception

{

  String reg = "\\w+@[a-zA-Z]+(\\.[a-zA-Z]+)+";

  getMailsByWeb(reg);

}

public static void getMailsByWeb(String regex)throws Exception

{

  URL url = new URL("http://localhost:8080/myweb/mail.html");

  URLConnection conn = url.openConnection();

  BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));

  String line = null;

  Pattern p = Pattern.compile(regex);   

  while((line=bufIn.readLine())!=null)

  {

    //System.out.println(line);

    Matcher m = p.matcher(line);

    while(m.find())

    {

      System.out.println(m.group());

    }

  }

  bufIn.close();

}

public static void getMails(String regex)throws Exception

{

  BufferedReader bufr = 

    new BufferedReader(new FileReader("mail.txt"));

  String line = null;

  Pattern p = Pattern.compile(regex);   

  while((line=bufr.readLine())!=null)

  {

    //System.out.println(line);

    Matcher m = p.matcher(line);

    while(m.find())

    {

      System.out.println(m.group());

    }

  }

  bufr.close();

}

}

Nach dem Login kopieren

单词边界匹配器 \b

\b代表一个单词的开始和结束部分,不匹配任何字符

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

vue组件做出无限级多选菜单

vue项目内使用全球数据库

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Anwendungsfälle von Pattern+Matcher. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Quadratwurzel in Java Quadratwurzel in Java Aug 30, 2024 pm 04:26 PM

Quadratwurzel in Java

Perfekte Zahl in Java Perfekte Zahl in Java Aug 30, 2024 pm 04:28 PM

Perfekte Zahl in Java

Zufallszahlengenerator in Java Zufallszahlengenerator in Java Aug 30, 2024 pm 04:27 PM

Zufallszahlengenerator in Java

Armstrong-Zahl in Java Armstrong-Zahl in Java Aug 30, 2024 pm 04:26 PM

Armstrong-Zahl in Java

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Weka in Java

Smith-Nummer in Java Smith-Nummer in Java Aug 30, 2024 pm 04:28 PM

Smith-Nummer in Java

Fragen zum Java Spring-Interview Fragen zum Java Spring-Interview Aug 30, 2024 pm 04:29 PM

Fragen zum Java Spring-Interview

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Brechen oder aus Java 8 Stream foreach zurückkehren?

See all articles