• 用正则验证字符串格式,形如:A)XXX B)XXXX C)XXX


    今天遇到个小功能,要验证某个英文选项是否正确,例如:A)accumulate B)circling C)communities  D)competition  E)domestic F)financially G)formally  H)gather  I)households  J)recession  K)reported L)reviewed M)serves N)surrounding O)survive

    要求:1.必须按顺序排下来,ABCD....

       2.选项后代英文)

    符合格式则返回true,不符合则为false

    想了想,还是用正则先分成一个字符串数组,每个元素即每个单选项,所以就顺手写了下,发现很简单也蛮有趣的:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Text.RegularExpressions;
     6 
     7 namespace ConsoleApplication1
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             Console.WriteLine(Check(@"A)accumulate B)circling C)communities  D)competition  E)domestic 
    14                                       F)financially G)formally  H)gather  I)households  J)recession  "));
    15             Console.WriteLine(Check(@"A|accumulate B)circling C)communities  D)competition"));
    16             Console.WriteLine(Check(@"A)accumulate C)communities  D)competition"));
    17             Console.WriteLine(Check(@"A|accumulate"));
    18             Console.WriteLine(Check(@""));
    19 
    20             Console.Read();
    21 
    22             //输出结果
    23             //true
    24             //false
    25             //false
    26             //false
    27             //false
    28         }
    29 
    30         public static bool Check(string options)
    31         {
    32             MatchCollection mc = Regex.Matches(options,@"[A-Z])[^A-Z]*");  //匹配A)XXX,直到下一个A)
    33             //没匹配到,直接返回false
    34             if (mc.Count == 0)
    35             {
    36                 return false;
    37             }
    38             //匹配到,继续检验
    39             else
    40             {
    41                 char c = 'A';
    42                 string bracket = ")";
    43                 foreach (Match option in mc)
    44                 {
    45                     //形如A)
    46                     string tmp = c + bracket;   
    47                     if (!option.Value.Contains(tmp))
    48                         return false;
    49                     //A自增为B
    50                     c++;
    51                 }
    52                 return true;
    53             }
    54             
    55         }
    56     }
    57 }
    务必引用c#的正则库函数:  using System.Text.RegularExpressions;
  • 相关阅读:
    2019年湘潭大学程序设计竞赛(重现赛)
    牛客练习赛43
    2251: Code Cleanups
    【软件工程】读《构建之法》
    20150401 作业2 结对 四则运算
    四则运算
    Unity3d网格合并2
    Unity网格合并_材质合并
    Unity 5 Stats窗口
    Unity3D研究院之Unity5.x运行时动态更新烘培贴图
  • 原文地址:https://www.cnblogs.com/nlh774/p/3471933.html
Copyright © 2020-2023  润新知