This step-by-step article shows you how to create and use
regular expressions to determine whether strings match certain patterns.
Regular expressions allow for easy parsing and matching of strings to a
specific pattern. Using the objects available in the
RegularExpressions namespace, you can compare a string against a given pattern,
replace a string pattern with another string, or retrieve only portions of a
formatted string. In this example, we will construct a pattern to validate a
e-mail address.
Requirements
The
following list outlines the recommended hardware, software, network
infrastructure, and service packs that you need:
This
article assumes that you are familiar with the following topics:
- Visual C#
- Regular expression syntax
Using regular expressions to match a pattern
- Start Visual C#.
- Create a new Visual C# Console Application.
- Specify the using keyword on the Text.RegularExpressions namespace so that you will not be required to qualify
declarations in those namespaces later in your code. The using statement must be used prior to any other declarations:
using System.Text.RegularExpressions;
- Define a new regular expression that will use a pattern
match to validate an e-mail address. The following regular expression is
structured to accomplish three things:
- Capture the substring before the @ symbol and put that
into the "user" group.
- Capture the substring after the @ symbol and put that
into the "host" group.
- Make sure that the first half of the string does not
have an @ symbol.
Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
- Define a new string containing a valid e-mail address. This
provides a default value if the method's command-line argument is empty:
String s = "johndoe@tempuri.org";
- Check to see if there are any command-line parameters; if
there are, retrieve the first parameter and assign it to the variable "s".
if ( args.Length > 0 ) {
s = args[0];
}
- Use the Match method to pass in the e-mail address variable and return a new Match object. The Match object will return regardless of whether any matches were found
in the source string.
Match m = emailregex.Match(s);
- By examining the Success property, we can decide whether to continue processing the Match object or to print an error message. If successful, display the
"user" and "host" named groups within the Groups collection of the Match object.
if ( m.Success ) {
Console.WriteLine("User: " + m.Groups["user"].Value);
Console.WriteLine("Host: " + m.Groups["host"].Value);
} else {
Console.WriteLine(s + " is not a valid email address");
}
Console.WriteLine();
- To keep the console window open after running the
application, add the following lines of code:
System.Console.WriteLine("Press Enter to Continue...");
System.Console.ReadLine();
- Build your project.
- To run the application in the development environment using
the default e-mail address specified in the code, press F5 or select Start from the Debug menu. To start the application with a command-line argument,
there are three options:
- On the Project menu, click Properties, and then click Debug. In the Start Options section in the right pane, specify the e-mail address that you want to test. Press F5, or click Start on the Debug menu to run the application.
In Visual C# .NET 2003:
On the Project menu, click Properties. In the left pane, click the Configuration Properties folder, and then click Debugging. Under Start Options, click Command Line Arguments and specify the e-mail adress that you want to test. Press F5 or
select Start from the Debug menu to run the application. - Start a command window and navigate to the "bin\debug"
folder under the folder in which your project resides. Then type in the name of
the executable followed by the e-mail address you wish to test.
- Locate the executable file for this project, and drag
it to the Start...Run window on the taskbar. Add the e-mail address to verify,
and click or press OK.
For more information, visit the following Microsoft
Developer Network (MSDN) Web sites:
Article ID: 308252 - Last Review: June 14, 2012 - Revision: 8.0
APPLIES TO
- Microsoft Visual C# 2008 Express Edition
- Microsoft Visual C# 2005
- Microsoft Visual C# .NET 2003 Standard Edition
| kbsweptvs2008 kbhowtomaster kbsample KB308252 |