正则表达式测试器

程序源自:<<C#字符串和正则表达式参考手册>>

这个例子程序很实用,可以把这个程序做为一个小工具来使用,很方便

以下是这个程序的界面.

正则表达式测试器

 

以下是核心代码:

 

代码
  1  using  System;
  2  using  System.Collections.Generic;
  3  using  System.ComponentModel;
  4  using  System.Data;
  5  using  System.Drawing;
  6  using  System.Linq;
  7  using  System.Text;
  8  using  System.Windows.Forms;
  9  using  System.IO;
 10  using  System.Text.RegularExpressions;
 11 
 12  namespace  RegexTester
 13  {
 14       public   partial   class  RegexTesterForm : Form
 15      {
 16           public  RegexTesterForm()
 17          {
 18              InitializeComponent();
 19          }
 20 
 21           #region  打开与存储正则表达式
 22 
 23           private   void  SaveRegexButton_Click( object  sender, EventArgs e)
 24          {
 25              saveFileDialog1.ShowDialog();
 26          }
 27 
 28           private   void  saveFileDialog1_FileOk( object  sender, CancelEventArgs e)
 29          {
 30              StreamWriter swRegex  =  File.CreateText(saveFileDialog1.FileName);
 31              swRegex.Write( this .RegexTextBox.Text);
 32              swRegex.Close();
 33          }
 34 
 35           private   void  OpenRegexButton_Click( object  sender, EventArgs e)
 36          {
 37              openFileDialog1.ShowDialog();
 38          }
 39 
 40           private   void  openFileDialog1_FileOk( object  sender, CancelEventArgs e)
 41          {
 42              StreamReader srRegex  =  File.OpenText(openFileDialog1.FileName);
 43               this .RegexTextBox.Text  =  srRegex.ReadToEnd();
 44              srRegex.Close();
 45          }
 46 
 47           #endregion
 48 
 49           ///   <summary>
 50           ///  得到正则表达式选项
 51           ///   </summary>
 52           ///   <returns> 返回正则表达式选项 </returns>
 53           private  RegexOptions GetSelectedRegexOptions()
 54          {
 55              RegexOptions selectedRegexOption  =  RegexOptions.None;
 56               if  ( this .IgnoreCaseCheckBox .Checked )
 57              {
 58                  selectedRegexOption  |= RegexOptions .IgnoreCase ;
 59              }
 60               if  ( this .ExplicitCaptureCheckBox  .Checked )
 61              {
 62                  selectedRegexOption  |= RegexOptions.ExplicitCapture  ;
 63              }
 64               if  ( this .ECMAScriptCheckBox .Checked )
 65              {
 66                  selectedRegexOption  |=  RegexOptions.ECMAScript ;
 67              }
 68               if  ( this .IgnorePatternWhiteSpaceCheckBox .Checked)
 69              {
 70                  selectedRegexOption  |=  RegexOptions.IgnorePatternWhitespace ;
 71              }
 72               if  ( this .MultiLineCheckBox .Checked)
 73              {
 74                  selectedRegexOption  |=  RegexOptions.Multiline;
 75              }
 76 
 77               if  ( this .RightToLeftCheckBox.Checked)
 78              {
 79                  selectedRegexOption  |=  RegexOptions.RightToLeft ;
 80              }
 81               if  ( this .SingleLineCheckBox .Checked)
 82              {
 83                  selectedRegexOption  |=  RegexOptions.Singleline ;
 84              }
 85 
 86               return  selectedRegexOption;
 87 
 88          }
 89 
 90           private   void  TestRegexButton_Click( object  sender, EventArgs e)
 91          {
 92               try
 93              {
 94                  RegexOptions selectedRegexOptions  =
 95                       this .GetSelectedRegexOptions();
 96                  Regex testRegex  =   new  Regex( this .RegexTextBox.Text, selectedRegexOptions);
 97                   if  (testRegex .IsMatch ( this .InputTextBox .Text ))
 98                  {
 99                       this .ResultsTextBox.ForeColor  =  Color.Black;
100                       this .ResultsTextBox.Text  =   " 字符串与正则表达式有匹配项! " ;
101                  }
102                   else
103                  {
104                       this .ResultsTextBox.ForeColor  =  Color.Red;
105                       this .ResultsTextBox.Text  =   " 字符串与正则表达式无匹配项! " ;
106                  }
107              }
108               catch  (ArgumentException ex )
109              {
110                   this .ResultsTextBox.ForeColor  =  Color.Red;
111                   this .ResultsTextBox.Text  =   " There waw an error in your Regular Expression:\r\n "
112                       +  ex.Message;
113                  
114              }
115          }
116 
117           private   void  ReplaceButton_Click( object  sender, EventArgs e)
118          {
119               try
120              {
121                  RegexOptions selectedRegexOption  =   this .GetSelectedRegexOptions();
122                  Regex replaceRegex  =   new  Regex( this .RegexTextBox.Text, selectedRegexOption);
123                   this .RegexTextBox.ForeColor  =  Color.Black;
124                   this .ResultsTextBox.Text  =  replaceRegex.Replace(
125                       this .InputTextBox.Text,  this .ReplacementTextBox.Text);
126   
127              }
128               catch  (ArgumentException ex )
129              {
130                   this .ResultsTextBox.ForeColor  =  Color.Red;
131                   this .ResultsTextBox.Text  =   " There is an error in "
132                       +   " your regular expression "   +  ex.Message;
133              }
134          }
135 
136           private   void  SpiltButton_Click( object  sender, EventArgs e)
137          {
138               try
139              {
140                              RegexOptions selectedRegexOption  =   this .GetSelectedRegexOptions();
141              Regex spiltRegex  =   new  Regex( this .RegexTextBox.Text, selectedRegexOption);
142 
143               string [] spiltResults;
144              spiltResults  =  spiltRegex.Split(
145                   this .InputTextBox.Text);
146              StringBuilder resultsString  =   new  StringBuilder( this .InputTextBox.Text.Length);
147               foreach  ( string  item  in  spiltResults )
148              {
149                  resultsString.Append(item  +  Environment.NewLine);
150              }
151               this .ResultsTextBox.Text  =  resultsString.ToString();
152              }
153               catch  (ArgumentException ex )
154              {
155                   this .ResultsTextBox.ForeColor  =  Color.Red;
156                   this .ResultsTextBox.Text  =   " There is an error in  "
157                       +   " this regular expression\r\n "   +  ex.Message;
158              }
159          }
160 
161           private   void  MatchesButton_Click( object  sender, EventArgs e)
162          {
163               try
164              {
165                  RegexOptions selectedRegexOption  =   this .GetSelectedRegexOptions();
166                  Regex matchRegex  =   new  Regex( this .RegexTextBox.Text, selectedRegexOption);
167 
168                  MatchCollection matchesFound;
169 
170                  matchesFound  =  matchRegex.Matches( this .InputTextBox.Text);
171                   string  NextMatch  =   " -------------NEXT MATCH------------\r\n " ;
172                  StringBuilder resultString  =   new  StringBuilder( 64 );
173 
174                   foreach  (Match  item  in  matchesFound )
175                  {
176                      resultString.Append(item.Value  +  Environment.NewLine  +  NextMatch);
177                  }
178                   this .ResultsTextBox.Text  =  resultString.ToString();
179              }
180               catch  (ArgumentException ex)
181              {
182                   this .ResultsTextBox.ForeColor  =  Color.Red;
183                   this .ResultsTextBox.Text  =   " There is an error in "
184                       +   " your regular expression "   +  ex.Message;
185              }
186          }
187      }
188  }
189 

 

要源程序的联系:[email protected]

 

 

你可能感兴趣的:(正则表达式)