java正则表达式


前言

正则表达式定义了字符串的模式。

正则表达式可以用来搜索、编辑或处理文本。

正则表达式对java的编译、语法解析有重要作用


提示:以下是本篇文章正文内容,下面案例可供参考

一、表达式的匹配验证

我们可以用语法定义一个字符串,用于后续解析

nonterminal ::= expression of terminals,nonterminals, and operations

示例:

url ::= 'http://' hostname (':' port)? '/'
hostname ::= word '.' hostname | word '.' word
port ::= [0-9]+
word ::= [a-z]+

二、original语法和操作符

//连接
    x ::= y z //x由y和z连接而成
//重复
    x ::= y* //x为y重复0次或多次
//选择
    x ::= y|z //x为y或z
//正闭包
    x ::= y+
//存在
    x ::= y? //x为y出现0次或1次
//还有如
    x ::= [a-c] //等价于x ::= 'a'|'b'|'c'

三、语法解析树

在进行字符串的语法匹配时会产生一个语法解析树,用于解析字符串中的部分与语法部分的对应关系,如果对我们上面给出的例子,输入一个串“http://didit.csail.mit.edu:4949/”

就会产生如下分析树:

四、正则表达式及语法

正则语法:简化之后可以表达为 一个产生式而不包含任何非终止节点。

正则语法有一个特殊的属性:通过将每个非终结符(根除外)替换为其右侧,可以将其缩减为根的单个产生式,并且只在右侧使用终结符和运算符。

在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。

java.util.regex 包主要包括以下三个类:

  • Pattern 类:

    pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。

  • Matcher 类:

    Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。

  • PatternSyntaxException:

    PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

用正则表达式,我们的上述语法表达式就可抽象为:

http://([a-z]+\.)+[a-z]+(:[0-9]+)?/

整个java语法可以抽象为:


总结

本文仅仅简单介绍了java中语法和正则表达式的概念与使用,实际上java提供了大量有关正则表达式的方法和转义符

d提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值