[Regex]Get正则表达式
原创文章,欢迎转载。转载请注明:转载自 祥的博客 原文链接:http://www.52php.cn/article/p-pzejexoe-bac.html 一直觉得正则表达式是很Geek的东西,一直浸淫在Windows的环境下,让我很难接触到这个伟大的发明,最近用C#做的项目里面要处理字符串,发现C#支持正则表达式,故而熟悉了一下,发现真是相见恨晚,处理效果真是太棒了,感觉这个技能一定要Get,故而催生出这篇博文。 基本概念记住正则语法最好的办法就是记住这三样东西:Bracket(括号),caret(插入符号)和Dollars(美元符号)。
现在你知道上面的3个语法后,你就可以写世界上任何一条验证规则了。比如下面的例子就很好的说明了上面3条正则语法是如何协调运作的。 具体实例
“*,+,?”的用法* , + 和 ? 这三个符号,表示一个或一序列字符重复出现的次数。它们分别表示:
下面是几个例子:
“{}”的用法也可以使用范围,用大括号括起,用以表示重复次数的范围
请注意,你必须指定范围的下限(如:{0,2}而不是{,2})。 “|”的用法还有一个 | ,表示 或操作。
“.”的用法. 可以替代任何字符。
“[]”的用法方括号 [] 表示某些字符允许在一个字符串中的某一特定位置出现。
还可以在方括号里用 ^ 表示不希望出现的字符,^ 应在方括号里的第一位。
为了逐字表达,你必须在^,.,$,(),|,*,+,?,{, 这些字符前加上转移字符: 。 请注意在方括号中,不需要转义字符。 快捷命令可以用以下的快捷命令来简化你的正则表达式
示例
C#测试程序主要是要使用 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace RegexTester
{
public partial class FormRegex : Form
{
public FormRegex()
{
InitializeComponent();
}
private void btn_Test_Click(object sender,EventArgs e)
{
setControl();
}
private void t_Regex_TextChanged(object sender,EventArgs e)
{
setControl();
}
private void t_Test_TextChanged(object sender,EventArgs e)
{
setControl();
}
#region Local Function
public void setControl()
{
string str = t_Test.Text;
string strReg = t_Regex.Text;
if (("" == str)||("" == strReg))
{
lab_show.Text = "Match or Not";
lab_show.ForeColor = Color.Black;
lab_show.TextAlign = ContentAlignment.MiddleCenter;
return;
}
if (isMatchReg(str,strReg))
{
lab_show.Text = "√ Match";
lab_show.ForeColor = Color.LawnGreen;
lab_show.TextAlign = ContentAlignment.MiddleCenter;
}
else
{
lab_show.Text = "× Not Match";
lab_show.ForeColor = Color.Red;
lab_show.TextAlign = ContentAlignment.MiddleCenter;
}
}
public static bool isMatchReg(string str,string regStr)
{
//判断
return Regex.IsMatch(str,regStr);
}
#endregion
private void FormRegex_KeyDown(object sender,KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)//如果输入的是回车键
{
setControl();
}
}
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- VideoIO Flash-based audio and video communication
- oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存
- kubernetes实现用户自定义扩缩容
- c# – 如何将Combobox绑定到ReactiveUI中的命令?
- swift – IOS Facebook SDK:尽管授予许可,登录也不会返回电
- c# – 如何在Windows Phone 7应用程序中以脱机模式从Web查看
- 學習 React.js : 概念和起步
- 是否有任何用于将xml架构转换为Linux数据库架构的开源工具?
- cocos2d-x 支持的开发语言
- C#函数式程序设计之惰性列表工具——迭代器