zoukankan      html  css  js  c++  java
  • 1.java实现——正规表达式判断

    目标:这个代码仅局限于所展示的正规表达式判断,也就是这是一个较单一的正规表达式判断(简易版)。

    既然是简易版的,所以若要修改这个正规表达式也是非常容易的,只要将二维数组中的数组修改即可。数组数据依据,该正规表达式所对应的的化简版DFA的状态装换矩阵。

    如:S  | a   |  b

          0  |  1  |  2

          1  |  1  |  2

          2   |  1  | 2   所对应的即为{{1,2},{1,2},{1,2}}

    效果:

    代码:

     1 package compile_design;
     2 import java.util.Scanner;
     3 
     4 public class regularExpression {
     5 
     6     public static void main(String[] args){
     7         int [][] array = {{1,2},{1,2},{1,2},{3,3},{4,3}};
     8         System.out.println("正规表达式为:
     ((a|b)*|aa)*b 
    ");
     9         System.out.println("请输入你要验证的字符串:");
    10         
    11         Scanner input = new Scanner(System.in);
    12         String str = input.next();
    13         int length = str.length();
    14         
    15         char ch;
    16         int i = 0,j = 0, index = 0;
    17         int t = 1;
    18         int flag =0; 
    19         
    20         while(index < length){
    21             ch=str.charAt(index);//获取字符串首字母
    22             if(ch == 'a')
    23                 j = 0;  //0 ---a
    24             if(ch == 'b') 
    25                 j = 1;  // 1 ---b
    26             if(ch != 'a' && ch != 'b'){
    27                 t = 0;
    28                 break;
    29             }
    30             index++;
    31             i = array[i][j]; 
    32         }
    33         
    34             flag = i ;
    35             if(flag ==  2 && t ==1){
    36                 System.out.println("accept,字符串符合该正规表达式
    ");
    37             }else{
    38                 System.out.println("reject,字符串不符合
    ");
    39             }
    40         }
    41 }
  • 相关阅读:
    linux kill命令以及 信号
    rhel7 系统服务——unit(单元)
    redis集群在线迁移
    二、主目录 Makefile 分析(3)
    二、主目录 Makefile 分析(2)
    二、主目录 Makefile 分析(1)
    一、文档目录分析
    Linux下解压缩
    设备树
    轮询
  • 原文地址:https://www.cnblogs.com/helingjuan/p/7020615.html
Copyright © 2011-2022 走看看