asp.net一些常用字符串操作正则表达式

1.拆分字符串
1.1 以下例举一个拆分句子的demo:

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("请输入要分拆的字符串,并按Enter键确认。");
string input=Console.ReadLine();
string pattern=@".|,|:|;|。|,|:|;";
string[] rs=Regex.Split(input,pattern);
Console.WriteLine("拆分后的所包含的分句为:");
foreach (string s in rs)
{
Console.WriteLine(s);
}
Console.ReadKey(true);
}
}
}

1.2 拆分HTML标签

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Program
{
public static void Main(string[] args)
{
string input="<b>这是</b><b>一个</b><b>寂寞的天。</b><b>下着</b><b>有点</b><b>伤心地</b><b>雨。</b>";
string pattern="<[^>]*>";
Regex r=new Regex(pattern);
string[] rs=r.Split(input);
Console.WriteLine("拆分后的所包含的分句为:");
foreach (string s in rs)
{
Console.WriteLine(s);
}
Console.ReadKey(true);
}
}
}

--------------------------------------------------------------------------------
2.查询字符串
Regex类提供了三个方法来实现字符串的查询和匹配,Match,Matchs和IsMatch.
2.1 Match在指定的输入字符串中搜索Regex构造函数中指定的正则表达式,返回一个Match类对象,如果Match类对象的Success属性为true,则存在匹配的字符串,这个在前面的博文里已经说明了,可以使用NextMatch进行下一次匹配。
下面的例子查找HTML片段中所有带引号的URL

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Test
{
static void PrintURL(string s)
{
string pattern="href\s*=\s*"[^"]*"";
Match m=Regex.Match(s,pattern);
while(m.Success)
{
Console.WriteLine(m.Value);
m=m.NextMatch();
}
}
public static void Main()
{
PrintURL("href="http:\\www.baidu.com" href="http:\\www.soso.com"");
Console.ReadKey();
}
}
}

--------------------------------------------------------------------------------
2.2 上面的例子也可以简化的返回一个MatchCollection集合,利用foreach遍历:

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Test
{
static void PrintURL(string s)
{
string pattern="href\s*=\s*"[^"]*"";
MatchCollection m=Regex.Matches(s,pattern);
foreach(Match str in m)
{
Console.WriteLine(str);
}
}
public static void Main()
{
PrintURL("href="http:\\www.baidu.com" href="http:\\www.soso.com"");
Console.ReadKey();
}
}

 
假如我们仅仅想知道引用的地址可以使用捕获组及Match类的Groups属性。例如:
 

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Test
{
static void PrintURL(string s)
{
string pattern="href\s*=\s*"([^"]*)"";
MatchCollection m=Regex.Matches(s,pattern);
foreach(Match str in m)
{
Console.WriteLine(str.Groups[0] );
}
}
public static void Main()
{
PrintURL("href="http:\\www.111cn.net" href="http:\\www.soso.com"");
Console.ReadKey();
}
}
}

--------------------------------------------------------------------------------

2.3.1 IsMatch指示正则表达式再输入字符串中是否找到匹配项。
查找是否在字符创中包含<a>

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Program
{
public static void Main(string[] args)
{
Regex r=new Regex ("<a[^>]*>",RegexOptions.IgnoreCase);
if(r.IsMatch("<a href="http://www.baidu.com/">链接</a>"))
Console.WriteLine("包含<a>标签");
else
Console.WriteLine("不包含<a>标签");
Console.ReadKey(true);
}
}
}

2.3.2用来验证输入16个数字

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Program
{
public static void Main(string[] args)
{
Regex r=new Regex (@"^d{4}-d{4}-d{4}-d{4}$");
if(r.IsMatch("1216-2593-3395-2612"))
Console.WriteLine("通过");
else
Console.WriteLine("不通过");
Console.ReadKey(true);
}
}
}

--------------------------------------------------------------------------------

3.替换字符串
Regex类的Replace方法用来替换字符串。下面的代码将输入字符串中的"China"都替换为“中国”。

 代码如下 复制代码
using System;
using System.Text.RegularExpressions;
namespace RegexSplit
{
class Test
{
static void EtoC(string s)
{
Console.WriteLine("源字符串:n{0}",s);
Console.WriteLine("替换后为:");
Console.WriteLine(Regex.Replace(s,"China","中国"));
}
public static void Main()
{
EtoC("China啊我的祖国,China啊China!");
Console.ReadKey();
}
}
}

例如,下面的函数演示了如何使用正则表达式验证邮政编码:

 代码如下 复制代码
private void ValidateZipButton_Click(object sender, System.EventArgs e)
{
   String ZipRegex = @"^d{5}$";
   if(Regex.IsMatch(ZipTextBox.Text, ZipRegex))
   {
      ResultLabel.Text = "ZIP is valid!";
   }
   else
   {
      ResultLabel.Text = "ZIP is invalid!";
   }
}

类似的,可以使用静态 Replace() 方法将匹配替换为特定字符串,如下所示:

String newText = Regex.Replace(inputString, pattern, replacementText);
最后,可以使用如下代码遍历输入字符串的匹配集合:

 代码如下 复制代码
private void MatchButton_Click(object sender, System.EventArgs e)
{
   MatchCollection matches = Regex.Matches(SearchStringTextBox.Text,
MatchExpressionTextBox.Text);
   MatchCountLabel.Text = matches.Count.ToString();
   MatchesLabel.Text = "";
   foreach(Match match in matches)
   {
      MatchesLabel.Text += "Found" + match.ToString() + " at
position " + match.Index + ".<br>";
   }
}

通常,在您需要指定默认方式以外的方式时,需要实例化 Regex 类的实例。特别是在设置选项时。例如,要创建忽略大小写和模式空白区域的 Regex 实例,然后检索与该表达式匹配的集合,则应使用如下代码:

 代码如下 复制代码

Regex re = new Regex(pattern,
   RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
MatchCollection mc = re.Matches(inputString);

http url验证

 代码如下 复制代码

Public Function IsValidUrl(ByVal Url As String) As Boolean
       Dim strRegex As String = "^(https?://)" _
                                 & "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" _
                                 & "(([0-9]{1,3}.){3}[0-9]{1,3}" _
                                 & "|" _
                                 & "([0-9a-z_!~*'()-]+.)*" _
                                 & "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." _
                                 & "[a-z]{2,6})" _
                                 & "(:[0-9]{1,4})?" _
                                 & "((/?)|" _
                                 & "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"

        Dim re As RegularExpressions.Regex = New RegularExpressions.Regex(strRegex)
        MessageBox.Show("IP: " & Net.IPAddress.TryParse(Url, Nothing))
        If re.IsMatch(Url) Then
            Return True
        Else
            Return False
        End If
End Function

时间: 2024-09-10 04:41:20

asp.net一些常用字符串操作正则表达式的相关文章

PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)_php技巧

本文实例总结了PHP常用字符串操作函数.分享给大家供大家参考,具体如下: /*常用的字符串输出函数 * * echo() 输出字符串 * print() 输出一个或多个字符串 * die() 输出一条信息,并退出当前脚本 * printf() 输出格式化字符串 * sprintf() 把格式化的字符串写入到一个变量中 * */ //ucfirst //将字符串中的首字母转换为大写 $str="string"; echo ucfirst($str); echo "<hr&

Asp.net(c#)常用文件操作类封装 移动 复制 删除 上传 下载等

Asp.net(c#)中常用文件操作类封装 包括:移动 复制 删除 上传 下载等 using System; using System.Configuration; using System.Data; using System.IO; using System.Text; using System.Threading; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Ht

asp.net中C#字符串操作函数与方法

(1)取字符串长度 <string>.Length; (2)字符串转为比特码 GetBytes(<string>) (3)字符串相加 推荐StringBuilder sb = new StringBuilder();sb.Append(<string>); (4)截断字符串的一部分 变量.SubString(起始位置,截取位数); (5)查指定位置是否为空字符 char.IsWhiteSpace(字符串变量,位数): (6)查字符是否是标点符号 char.IsPunct

Linux下常用C语言字符串操作函数

stroul, strdup snprintf() atio   C中常用字符串操作函数 #include <string.h>   size_t strlen(const char *s)   测量字符串长度s的实际长度. 例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度   char *strcat(const char *s1, const *s2)    将字符串s2连接到s1的尾部.从s1的/0开始.   int strcm

asp.net中常用的字符串处理类

 代码如下 复制代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; usi

PHP开发中常用的字符串操作函数

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

Java使用正则表达式及字符串操作,抽取网页信息

使用正则表达式及字符串操作,抽取网页信息,实现代码如下: /* 去script */ public static String trimScript(String content) { String regEx = "<script[^>]*>[^<]+</script>"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(content); String result = cont

PHP开发中常用的字符串操作函数_php技巧

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

C#中一些字符串操作的常用用法_C#教程

C#中一些字符串操作的常用用法 //获得汉字的区位码 byte[]array=newbyte[2]; array=System.Text.Encoding.Default.GetBytes("啊"); inti1=(short)(array[0]-''\0''); inti2=(short)(array[1]-''\0''); //unicode解码方式下的汉字码 array=System.Text.Encoding.Unicode.GetBytes("啊"); i