Csharp/CSharp Tutorial/Regular Expression/Regular Expression — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
| |
Текущая версия на 12:17, 26 мая 2010
Содержание
- 1 Do a replace using the Regex
- 2 new Regex(<([^>]+)>[^<]*</(\1)>: for XML tag
- 3 new Regex((abc)*abc((abcd)|z)bc)
- 4 new Regex((abc)*)x(\1)
- 5 new Regex("(abc)|(xyz)*") 1
- 6 new Regex("((abc)|(xyz))*") 2
- 7 new Regex("((?:abc)|(?:xyz))*") 3
- 8 new Regex("^\\d+") 1
- 9 new Regex("\d+$") 2
- 10 new Regex("^\\d+$") 3
- 11 new Regex(?(^\d)^\d+$|^\D+$)
- 12 new Regex(^\d+$\n+, RegexOptions.Multiline)
- 13 new Regex(<[^>]+>[^<]*</[^>]+>): for XML tag
- 14 Regular Expresion Part
- 15 Reverse
- 16 Use Regular Expressions to split string
- 17 Using RegEx
Do a replace using the Regex
using System;
using System.Text.RegularExpressions;
public class MainClass
{
static void Main( string[] args ) {
// Create regex to search for IP address pattern.
string pattern = @"([01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"([01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"([01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"([01]?\d\d?|2[0-4]\d|25[0-5])";
Regex regex = new Regex( pattern );
Console.WriteLine( "Input given --> {0}",
regex.Replace("192.168.199.1",
"xxx.xxx.xxx.xxx") );
}
}Input given --> xxx.xxx.xxx.xxx
new Regex(<([^>]+)>[^<]*</(\1)>: for XML tag
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r1 = new Regex(@"<([^>]+)>[^<]*</(\1)>");
string s0 = "<M>S</M>";
string s1 = "<M>S</I>";
Console.WriteLine(r1.IsMatch(s0));
Console.WriteLine(r1.IsMatch(s1));
}
}True False
new Regex((abc)*abc((abcd)|z)bc)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex("(abc)*abc((abcd)|z)bc");
Console.WriteLine(r.IsMatch("abcabcabcdbc"));
}
}True
new Regex((abc)*)x(\1)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r1 = new Regex(@"((abc)*)x(\1)");
string s1 = "abcabcabcxabc";
Console.WriteLine(r1.IsMatch(s1) + "..." + r1.Match(s1).Value);
}
}True...abcxabc
new Regex("(abc)|(xyz)*") 1
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r1 = new Regex("(abc)|(xyz)*");
Console.WriteLine(r1.IsMatch("abcxyzabcxyzxyzabcabcabc"));
}
}True
new Regex("((abc)|(xyz))*") 2
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r2 = new Regex("((abc)|(xyz))*");
Console.WriteLine(r2.Match("abcxyzabcxyzxyzabcabcabc").Value);
}
}abcxyzabcxyzxyzabcabcabc
new Regex("((?:abc)|(?:xyz))*") 3
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r3 = new Regex("((?:abc)|(?:xyz))*");
Console.WriteLine(r3.IsMatch("abcabcxyzabc"));
}
}True
new Regex("^\\d+") 1
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex("^\\d+");
string[] ss = new string[] { "123abc", "abc123", "123", "abc", "a123bc" };
foreach (string s in ss)
Console.WriteLine(r.IsMatch(s));
}
}True False True False False
new Regex("\d+$") 2
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex(@"\d+$");
string[] ss = new string[] { "123abc", "abc123", "123", "abc", "a123bc" };
foreach (string s in ss)
Console.WriteLine(r.IsMatch(s));
}
}new Regex("^\\d+$") 3
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex("^\\d+$");
string[] ss = new string[] { "123abc", "abc123", "123", "abc", "a123bc" };
foreach (string s in ss)
Console.WriteLine(r.IsMatch(s));
}
}new Regex(?(^\d)^\d+$|^\D+$)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex(@"(?(^\d)^\d+$|^\D+$)");
Console.WriteLine(r.Match("cat too"));
Console.WriteLine(r.Match("dag"));
Console.WriteLine(r.Match("2else"));
}
}cat too dag
new Regex(^\d+$\n+, RegexOptions.Multiline)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r = new Regex(@"(^\d+$\n)+", RegexOptions.Multiline);
Console.WriteLine(r.Match("987987\n129821").Value);
}
}987987
new Regex(<[^>]+>[^<]*</[^>]+>): for XML tag
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex r0 = new Regex(@"<[^>]+>[^<]*</[^>]+>");
string s0 = "<M>S</M>";
string s1 = "<M>S</I>";
Console.WriteLine(r0.IsMatch(s0));
Console.WriteLine(r0.IsMatch(s1));
}
}True True
Regular Expresion Part
using System;
using System.Text;
using System.Text.RegularExpressions;
public class MainClass
{
static void Main( string[] args ) {
// Create regex to search for IP address pattern.
string pattern = @"(?<part1>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part2>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part3>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part4>[01]?\d\d?|2[0-4]\d|25[0-5])";
Regex regex = new Regex( pattern );
Match match = regex.Match( "192.1.1.122" );
MatchEvaluator eval = new MatchEvaluator(IPReverse );
Console.WriteLine( regex.Replace("192.1.1.122", eval) );
}
static string IPReverse( Match match ) {
StringBuilder sb = new StringBuilder();
sb.Append( match.Groups["part4"] + "." );
sb.Append( match.Groups["part3"] + "." );
sb.Append( match.Groups["part2"] + "." );
sb.Append( match.Groups["part1"] );
return sb.ToString();
}
}122.1.1.192
Reverse
using System;
using System.Text;
using System.Text.RegularExpressions;
public class MainClass
{
static void Main( string[] args ) {
// Create regex to search for IP address pattern.
string pattern = @"(?<part1>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part2>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part3>[01]?\d\d?|2[0-4]\d|25[0-5])\." +
@"(?<part4>[01]?\d\d?|2[0-4]\d|25[0-5])";
Regex regex = new Regex( pattern );
Match match = regex.Match( "192.168.123.1" );
string replace = @"${part4}.${part3}.${part2}.${part1}" +
@" (the reverse of $&)";
Console.WriteLine( regex.Replace("192.168.123.1", replace) );
}
}1.123.168.192 (the reverse of 192.168.123.1)
Use Regular Expressions to split string
using System;
using System.Text.RegularExpressions;
class MainClass
{
public static void Main()
{
string s = "A, B,cCCC, D";
Regex regex = new Regex(@" |, ");
foreach (string sub in regex.Split(s))
{
Console.WriteLine("Word: {0}", sub);
}
}
}Word: A Word: B,cCCC Word: D
Using RegEx
using System;
using System.Text;
using System.Text.RegularExpressions;
public class Tester
{
static void Main()
{
string s1 = "One,Two,Three, Inc.";
Regex theRegex = new Regex(" |, |,");
StringBuilder sBuilder = new StringBuilder();
int id = 1;
foreach (string subString in theRegex.Split(s1))
{
sBuilder.AppendFormat("{0}: {1}\n", id++, subString);
}
Console.WriteLine("{0}", sBuilder);
}
}