C#Regex.Split 用法

本文通过两个示例介绍了如何使用C#中的Regex.Split方法来分割字符串。第一个示例展示了如何按连字符分割字符串,并保留空项;第二个示例演示了如何将字符串拆分为字符数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



C#Regex.Split 比string.Split 丰富

例子

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "plum--pear";
      string pattern = "-";            // Split on hyphens

      string[] substrings = Regex.Split(input, pattern);
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The method displays the following output:
// 'plum'
// ''
// 'pear'     

例子2

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "characters";
      string[] substrings = Regex.Split(input, "");
      Console.Write("{");
      for(int ctr = 0; ctr < substrings.Length; ctr++)
      {
         Console.Write("'{0}'", substrings[ctr]);
         if (ctr < substrings.Length - 1)
            Console.Write(", ");
      }
      Console.WriteLine("}");
   }
}
// The example produces the following output:
// {'', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', 's', ''}

详细可以参照 https://msdn.microsoft.com/zh-cn/library/8yttk7sy.aspx

03-11
### C# 中正则表达式的使用指南 #### 基本概念与用途 C# 中的正则表达式是一种强大而灵活的文本处理工具,它利用预定义的模式来匹配、提取、替换或分割字符串中的特定内容[^1]。这种技术广泛应用于验证输入数据的有效性、解析日志文件、清理文本等内容。 #### 创建和应用正则表达式对象 为了创建一个用于操作字符串的正则表达式实例,在 .NET Framework 下可以通过 `System.Text.RegularExpressions.Regex` 类来进行。该类提供了多种方法支持不同的应用场景: - **Regex.IsMatch()**: 测试整个输入序列是否有任何位置能够被指定的正则表达式成功匹配。 - **Regex.Match()**: 查找第一个成功的匹配项并返回 Match 对象。 - **Regex.Matches()**: 返回所有非重叠匹配的结果集合作为 MatchCollection 集合。 - **Regex.Replace()**: 将给定字符串中符合规则的部分替换成新的子串。 - **Regex.Split()**: 按照所提供的模式拆分目标字符串成数组形式。 ```csharp using System; using System.Text.RegularExpressions; class Program { static void Main(string[] args){ string pattern = @"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b"; Regex regex = new Regex(pattern, RegexOptions.IgnoreCase); Console.WriteLine(regex.IsMatch("example@example.com")); // 输出 True 或 False foreach (Match match in regex.Matches("Contact us at support@domain.com or sales@another-domain.org")) { Console.WriteLine(match.Value); } } } ``` #### 编译选项优化性能 当频繁调用相同的正则表达式时,建议启用静态编译特性以减少每次执行前重新解释的时间开销;另外还可以考虑采用缓存机制进一步提升效率[^3]。例如设置 `RegexOptions.Compiled` 参数可使正则表达式在首次加载后即转换为本地机器码从而加快后续运行速度。 #### 处理异常情况 如果遇到不合法或者难以理解的正则表达式语句,则可能会抛出 PatternSyntaxException 异常提示存在语法上的问题[^2]。因此编写程序过程中应当注意捕获此类潜在风险,并给予适当反馈帮助开发者快速定位错误所在之处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值