程序设计语言|正规式

程序设计语言|正规式,第1张

词法分析是把构成源程序的字符串转换成单词符号序列。词法规则可用 3型文法 (正规文法)或正规表达式描述,他产生的集合是语言基本字符集Σ(字母表)上的字符串的一个子集,称为正规集。

正规式是一种表示正规集的工具,正规式是描述程序语言单词的表达式,对于字母表Σ。

正规式(正规表达式)的运算符有3个,优化级从高到低顺序排列为:*(闭包)、·(连接,可省略)、|(或)。

正规式  →  正规集

ab  →  字符串ab构成的集合

a|b  →  字符串a、b构成的集合

a*  →  由0个或多个a构成的字符串集合

(a|b)*  →  所有字符a和b构成的串的集合

a(a|b)*  →  以a为首字符的a、b字符串的集合

(a|b)*abb  →  以abb结尾的a、b字符串的集合

有限自动机可以转换为正规式,正规式也可以转换为有限自动机。

词法分析器的构造步骤:

1)用正规式描述语言中的单词构成规则。

2)为每个正规式构造一个NFA,它识别正规式所表示的正规集。

3)将构造出的NFA转换成等价的DFA。

4)对DFA进行最小化处理,使其最简。

5)从DFA构造词法分析器。

按照你的要求编写的Java正则表达式程序如下

import java.util.regex.Matcher

import java.util.regex.Pattern

public class A {

 public static void main(String[] args) {

  String s="1.3232"

  String regex="^[1-9]?[0-9](

\\.[0-9]{1,4})?$

"

  Pattern p = Pattern.compile(regex)

  Matcher m = p.matcher(s)

        if(m.matches()){

   System.out.println("匹配")

  }else{

   System.out.println("不匹配")

   }

 }

}

运行结果

匹配


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12204241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存