美文网首页
《Oracle Java SE编程指南》28-03:字符串字面量

《Oracle Java SE编程指南》28-03:字符串字面量

作者: AT阿宝哥 | 来源:发表于2020-05-21 00:18 被阅读0次
课程封面-JavaSE-AT阿宝哥

内容导航

  • 前言
  • 1、字符串字面量
  • 2、元字符
  • 3、元字符表
  • 4、字符类
  • 5、预定义字符类
  • 6、量词

前言

正则表达式的中代表模式的字符串或者字符由字符串字面量和元字符组成。


1、字符串字面量

最基本的模式匹配形式是字符串文字的匹配。例如,如果正则表达式是Abc,而输入字符串是Abc,则匹配将成功,因为字符串是相同的。

示例代码:


package com.company.project.demo030101;

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

public class Client {

    public static void main(String[] args) {

        Pattern pattern = Pattern.compile("Abc");

        Matcher matcher = pattern.matcher("Abcd");

        System.out.println("lookingAt:" + matcher.lookingAt());

        System.out.println("matches:" + matcher.matches());

    }

}

运行结果:


lookingAt:true
matches:false


2、元字符

元字符,是指一个由匹配器解释的具有特殊意义的字符,它能影响模式匹配方式。

我们将先前案例的正则表达式更改为Abc.

示例代码:



package com.company.project.demo030201;

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

public class Client {

    public static void main(String[] args) {

        // 元字符
        Pattern pattern = Pattern.compile("Abc.");

        Matcher matcher = pattern.matcher("Abcd");

        System.out.println("lookingAt:" + matcher.lookingAt());

        System.out.println("matches:" + matcher.matches());

    }

}

运行结果:


lookingAt:true
matches:true


我们发现,匹配仍然成功,即使在输入字符串中没有出现点.。它成功是因为点.是一个元字符,表示任何字符,这就是本例中匹配成功的原因。


3、元字符表

正则表达式支持的元字符如下表:

序号 名称 简介
01 < --
02 ( --
03 [ --
04 { --
05 \ --
06 ^ 代表一行的开始
07 - --
08 = --
09 $ 代表一行的结束
10 ! --
11 ` ` --
12 ] --
13 } --
14 ) --
15 ? --
16 * --
17 + --
18 . --
19 > --

4、字符类

在“字符类”部分,所支持的正则表达式构造。在正则表达式上下文中,字符类是用方括号括起来的一组字符。它指定将成功匹配给定输入字符串中的单个字符的字符。

左边的列指定正则表达式构造,右边的列描述每个构造匹配的条件。

组成 描述
[abc] a, b, or c (simple class)
[^abc] 除a、b、c以外的任何字符(否定)
[a-zA-Z] a到z,或A到Z,包括(范围)
[a-d[m-p]] a至d或m至p: [a-dm-p](合集)
[a-z&&[def]] d e或f(交集)
[a-z&&[^bc]] a到z,除了b和c: [ad-z](减法)
[a-z&&[^m-p]] a到z,而不是m到p: [a-lq-z](减法)

5、预定义字符类

组成 描述
. 任何字符(可能与行终止符匹配,也可能不匹配)
\d 一个数字: [0-9]
\D 一个非数字: [^0-9]
\s 一个空白字符: [ \t\n\x0B\f\r]
\S 一个非空白字符: [^\s]
\w 一个单词字符: [a-zA-Z_0-9]
\W 一个非单词字符: [^\w]

6、量词

Greedy Reluctant Possessive Meaning
X? X?? X?+ X, once or not at all
X* X*? X*+ X, zero or more times
X+ X+? X++ X, one or more times
X{n} X{n}? X{n}+ X, exactly n times
X{n,} X{n,}? X{n,}+ X, at least n times
X{n,m} X{n,m}? X{n,m}+ X, at least n but not more than m times

持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥

网友评论

      本文标题:《Oracle Java SE编程指南》28-03:字符串字面量

      本文链接:https://www.haomeiwen.com/subject/rhlaohtx.html