使用正则表达式 来 模式匹配指定 的字符串的方法,
主要是写正则表达式
可以用System.Text.RegularExpressions里面的Regex的静态方法split,match等等,
下面主要写到的是split
解决了一个这样的问题:比如我的字符串是string s ="sdf 2009/7/07 12:12:34 fsfsd";
我要模式匹配出时间,即把12:12:34作为分隔符,用split分隔字符串入数组。
若需要把分隔符12:12:34 也放入数组,则可以在正则表达式外面加上括号,比如
我的正则表达式是这样的:
加上了括号
String patternTest = "([0-9]{4}\\/[0-9]{1,2}\\/[0-9]{1,2} [0-9]{1,2}\\:[0-9]{1,2}\\:[0-9]{1,2})";
则分隔符也会加入数组,若取掉括号,则不会把分隔符加入数组中。
为什么要使用括号呢?因为有时在正则表达式里面需要 使用 | 来表示 “或”。
则 或 的周围必须加上括号。但是 加上了括号呢,我又不想把括号里面的匹配字符串split入数组中,则可以这样做:
在左括号(后面加上 ?:
这样,就不会加入数组中啦 !
例如:
String pattern = "(?:[0-1][0-9]|2[0-3])\\:[0-5][0-9]\\:[0-5][0-9]";
下面的是 完整的c#使用正则表达式分隔 日期时间 的完整例子
c#的正则表达式 和 java里面的使用时,居然还有点差别,晕。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace TestNie
{
class Program
{
static void Main(string[] args)
{
string s ="sdf 2009/7/07 12:12:34 fsfsd";
String ss = "sdfsdfsf 2009/11/11 3:4:6 dsfsdf fsdf fsfsdfsdfs";
/*
String date = "(([0-9]{4})\\/[0-9][0-9]|[0-9]\\/[0-9][0-9]|[0-9])";
String time = "(\\d\\d\\:\\d\\d\\:\\d\\d)";
*/
//String patternTest = "[0-9]{4}\\/[0-9]{1,2}\\/[0-9]{1,2}"; //date
String pattern = "(?:[0-1][0-9]|2[0-3])\\:[0-5][0-9]\\:[0-5][0-9]";
String patternTest = "([0-9]{4}\\/[0-9]{1,2}\\/[0-9]{1,2} [0-9]{1,2}\\:[0-9]{1,2}\\:[0-9]{1,2})";
String csdn = "(?:[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]";//?:
String[] test = Regex.Split(s, patternTest);
String[] test2 = Regex.Split(ss, patternTest);
String[] csdnTest = Regex.Split(s, csdn);
String[] csdnTest2 = Regex.Split(s, pattern);
}
}
}
分享到:
相关推荐
正则表达式是一种非常强大的字符串匹配工具,通过使用正则表达式,我们可以实现字符串的各种操作,例如匹配、验证、提取和替换等。然而,正则表达式的使用需要一定的规则和语法,因此,开发者需要熟悉正则表达式的...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...
给写了2个方法,一个是直接截取单个需要的字符串,比如字符串string a="ab123456",我只需要提取3,那么就是单独截取就可以了,从2开始到4结束就行。 第二个是把所有的符合条件的字符串都截取出来,提取出来,比如...
C#正则表达式是.NET框架中用于在输入文本中匹配特定模式的一套工具。正则表达式由一个或多个字符文字、操作符或构造组成,可用于定义复杂的文本匹配规则。该文档作为一个手册,提供了快速参考的各个部分,覆盖了字符...
通过以上对C#正则表达式集合的详细解释,我们可以看到正则表达式在实际开发中的强大功能,无论是数据验证还是文本处理等方面都能发挥重要作用。开发者可以根据具体需求灵活地应用这些正则表达式,提高程序的健壮性和...
本文将深入探讨C#中的字符串操作和正则表达式使用,帮助你更好地理解和运用这些工具。 一、C#字符串 1. 字符串基础:在C#中,字符串是不可变对象,这意味着一旦创建,就不能更改。字符串常量通常用双引号括起,...
在IT领域,正则表达式...通过对这个源代码的分析和学习,开发者不仅可以掌握C#正则表达式的基本用法,还能了解到一些高级特性和实际应用中的技巧。这对于提升软件开发能力,特别是在处理文本数据时,是非常有帮助的。
- **模式匹配**:正则表达式由一系列字符和特殊符号组成,用于定义一个模式,该模式可以匹配特定的字符串。 - **元字符**:如`*`, `+`, `?`, `{}`, `[]`, `\`等,它们具有特殊的含义,用于指定重复次数、选择范围...
C#正则表达式语法大全涵盖了在C#编程语言中使用正则表达式进行文本匹配、提取、替换等操作所必需的语法知识。正则表达式是一种强大的文本处理工具,它可以描述字符串的模式,让我们能够执行复杂的搜索和匹配操作。 ...
### C#正则表达式提取中文 在C#中,`System.Text.RegularExpressions`命名空间提供了`Regex`类,该类是执行正则表达式操作的核心。`Regex`类包含了许多静态方法,如`Matches`、`Match`、`Split`等,这些方法可以...
使用`new Regex(pattern)`创建Regex对象,其中`pattern`是正则表达式字符串。还可以通过指定 RegexOptions 枚举值,例如:`RegexOptions.IgnoreCase`实现不区分大小写的匹配。 四、正则表达式模式 1. 预定义字符类...
C#正则表达式支持一些预定义的字符类,如`\w`代表单词字符(等同于`[a-zA-Z0-9_]`),`\s`代表空白字符(如空格、制表符等)。 6. **量词**: - `*`:匹配前面的子表达式零次或多次。 - `+`:匹配前面的子表达式...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,用于匹配、查找、替换或提取字符串中的特定模式。在C#编程语言中,利用正则表达式可以实现对复杂文本数据的高效处理。本项目提供...
《C#正则表达式快速入门》一文深入浅出地介绍了正则表达式这一强大而灵活的文本处理工具在C#编程环境下的应用。正则表达式,因其能够高效地进行模式匹配、搜索和替换等操作,在数据验证、文本处理、搜索与替换等场景...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换操作。C#作为.NET框架的一部分,提供了全面支持正则表达式的类库,使得开发人员能够方便地利用正则表达式进行复杂的文本处理任务。在这个...
总的来说,掌握C#正则表达式能显著提升处理文本数据的能力,而选择合适的测试工具将使这个过程变得更加高效和直观。通过不断的实践和学习,你可以更好地利用这一强大的工具来解决各种复杂的问题。
C#正则表达式是.NET框架中用于处理文本模式匹配和数据提取的强大工具。它基于Perl风格的正则表达式,允许程序员通过简洁的语法来执行复杂的文本操作。本专题学习将深入探讨C#正则表达式的使用,帮助开发者更好地理解...
`Regex`类的构造函数允许开发者传递一个正则表达式字符串,并可以选择是否编译成正则表达式对象。编译可以提高匹配性能,但会增加内存占用,对于频繁使用的正则表达式比较有利。 此外,该工具还可能包含了错误处理...