如何为3型语言编写正确的正则表达式?

时间:2014-06-05 22:25:54

标签: c# regex

我创建了一个可以按规则检查语法规则的函数。如果规则包含一个低位字符和一个大写字符(例如:aB),或只包含一个小写字符(例如:a)。还有别的错。所以语法看起来像这样:

S→a|aA
 A→bB|b
 B→b|a

左侧始终是大写字母。正确的是我之前写的两种。我想检查右侧。

EDIT 这是代码:

 public bool isCorrectGram(List<string> rules)
            {
                Regex rgx=new Regex("^[a-z][A-Z]$");
                Regex rgx2 = new Regex("^[a-z]$");
                System.Windows.Forms.MessageBox.Show(rules.Count.ToString());
                foreach(string line in rules)
                {
                    List<string> temp = line.Split('|', '→').ToList<string>();
                    for (int i = 1; i < temp.Count;i++ )
                    {
                        System.Windows.Forms.MessageBox.Show(temp[i]);
                        if (!(rgx.IsMatch(temp[i])||rgx2.IsMatch(temp[i])))
                        {
                            return false;
                        }
                    }
                }
                return true;
            }

0 个答案:

没有答案