c# 的正则运算[小窍门]

 c# 的正则表达式运算

在需要执行正则运算时,需要在开头加入命名空间:using System.Text.RegularExpressions;//正则表达式空间

使用范例:
 
            const string pattern1 = @"^[0-9]*$";
            const string pattern2 = @"^[A-Za-z]+$";

            if (!Regex.IsMatch(textBox2.Text, pattern1) && !Regex.IsMatch(textBox2.Text, pattern2))
            { MessageBox.Show("只能输入英文或者数字"); return; }

QQ交流群:162136059

### C# 使用正则表达式提取数据示例 在 C# 中,可以借助 `System.Text.RegularExpressions` 命名空间下的 `Regex` 类来进行复杂的文本匹配和提取操作。以下是一些常见的场景及其对应的代码实现。 #### 场景一:从 HTML 文本中提取标签之间的内容 假设有一个包含多个 HTML 标签的字符串,目标是从这些标签之间提取纯文本内容。 ```csharp using System; using System.Text.RegularExpressions; class Program { static void Main() { string html = "<p>Hello, World!</p><div>Some content</div><span>Another text</span>"; // 定义正则表达式模式,捕获尖括号之间的内容 string pattern = @">([^<]*)<"; // 创建 Regex 对象实例 Regex regex = new Regex(pattern); // 获取所有匹配项 MatchCollection matches = regex.Matches(html); // 遍历并输出结果 foreach (Match match in matches) { Console.WriteLine(match.Groups[1].Value); // 输出组中的具体内容 } } } ``` 在此例子中,我们使用了正则表达式 `>(.*?)<` 来查找每一对 `<...>` 标记内部的内容[^4]。这里 `(.*?)` 是一个非贪婪匹配分组,它会尽可能少地匹配字符直到遇到下一个 `<` 符号为止。 #### 场景二:验证电子邮件地址格式 如果需要确认某个字符串是否符合标准邮箱格式,则可采用如下方式: ```csharp using System; using System.Text.RegularExpressions; public class EmailValidator { private static readonly string Pattern = @"^[^@\s]+@[^@\s]+\.[^@\s]+$"; public bool IsValidEmail(string email) { return Regex.IsMatch(email, Pattern); } public static void Test() { var validator = new EmailValidator(); Console.WriteLine(validator.IsValidEmail("test@example.com")); // True Console.WriteLine(validator.IsValidEmail("invalid-email")); // False } } // 调用测试方法 EmailValidator.Test(); ``` 这里的正则表达式 `^[^@\s]+@[^@\s]+\.[^@\s]+$` 表达了一个有效的电子邮箱应该具有的结构特点[^2]。即由至少一个非空格及 '@' 字符组成的第一部分,接着是一个 '@' 号,再后面跟着另一串不含 '@' 或空格的字符序列以及最后一点 ('.') 后面跟随域名后缀。 #### 场景三:提取日期信息 对于一些日志文件或者其他记录型文档来说,经常会有时间戳存在其中。这时可以用正则表达式来定位并抓取出所有的日期字段。 ```csharp using System; using System.Text.RegularExpressions; class DateExtractor { static void Main() { string logEntry = "Error occurred on 2023-09-15 at 14:37:00."; // 匹配 ISO8601 格式的日期 string datePattern = @"\d{4}-\d{2}-\d{2}"; // 执行搜索 Match m = Regex.Match(logEntry, datePattern); if(m.Success){ Console.WriteLine("Extracted Date:" +m.Value); } } } ``` 在这个案例里,`\d{4}` 表明四个连续数字代表年份;而 `\d{2}` 则分别对应月份与日子两位数表示法[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值