C#基础知识之字符串和正则表达式

C#基础知识之字符串和正则表达式

一、字符串

1. 字符串的定义

在 C# 中,字符串是一个不可变的对象,表示文字和其他字符序列。C# 中的字符串对象是 System.String 类型的实例。创建字符串即是创建 String 对象,并使用双引号或 @-引号字符串来表示字符串值。如:

string str1 = "Hello world!"; // 使用双引号
string str2 = @"Hello\tworld!"; // 使用 @-引号,可以包含转义符

2. 字符串的常见操作

下面是一些常见的字符串操作:

2.1 字符串连接

可以使用 + 或 String.Concat 方法把字符串连接在一起。

string str1 = "Hello";
string str2 = "world!";
string str3 = str1 + " " + str2; // 字符串连接
string str4 = String.Concat(str1, " ", str2); // 使用 Concat 方法连接字符串

2.2 子字符串

可以使用 Substring 方法获取字符串的子串。

string str = "Hello, world!";
string subStr1 = str.Substring(0, 5); // 获取前 5 个字符
string subStr2 = str.Substring(7); // 从第 8 个字符截取到末尾

2.3 字符串替换

可以使用 Replace 方法替换字符串中的指定字符或字符串。

string str = "Hello, world!";
string newStr = str.Replace("world", "dotnet");

2.4 字符串比较

可以使用 ==、!=、Equals 方法等来比较两个字符串是否相等。

string str1 = "Hello, world!";
string str2 = "Hello, World!";
bool isEqual1 = str1 == str2; // false
bool isEqual2 = str1.Equals(str2, StringComparison.OrdinalIgnoreCase); // true,不区分大小写

2.5 字符串分割

可以使用 Split 方法按指定的分隔符将字符串分割成字符串数组。

string str = "apple, banana, kiwi";
string[] fruits = str.Split(',');

3. 示例说明

3.1 遍历字符串中的字符

string str = "Hello, world!";
foreach (char c in str)
{
    Console.WriteLine(c);
}

输出:

H
e
l
l
o
,

w
o
r
l
d
!

3.2 把字符串中的数字提取出来

string input = "abc123efg456hij789";
string pattern = @"\d+";
MatchCollection matches = Regex.Matches(input, pattern);
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

输出:

123
456
789

二、正则表达式

1. 正则表达式的定义

正则表达式可以用于匹配和处理字符串。它是一种通用的字符串模式匹配方式,定义了一种规则来描述特定模式的文本格式。在 C# 中,可以使用 System.Text.RegularExpressions 命名空间中的正则表达式类库来对字符串进行模式匹配和处理。

2. 正则表达式的语法

下面是一些常见的正则表达式语法:

字符 说明
^ 匹配字符串开始位置
$ 匹配字符串结束位置
. 匹配任一字符
* 匹配前面的字符 0 次或多次
+ 匹配前面的字符 1 次或多次
? 匹配前面的字符 0 次或 1 次
[] 匹配方括号里的任一字符
[^] 不匹配方括号里的任一字符
() 分组匹配,可以使用 $1、$2、$3… 访问

3. 常见操作

下面是一些常见的正则表达式操作:

3.1 匹配

可以使用 Regex.IsMatch 方法判断一个字符串是否匹配指定的正则表达式。

string input = "abc123";
string pattern = @"\d+";
bool isMatch = Regex.IsMatch(input, pattern);

3.2 提取

可以使用正则表达式的分组语法提取字符串中的指定部分。

string input = "abc123";
string pattern = @"(\D+)(\d+)";
Match match = Regex.Match(input, pattern);
string str1 = match.Groups[1].Value; // "abc"
string str2 = match.Groups[2].Value; // "123"

4. 示例说明

4.1 验证密码是否符合要求

string password = "123456";
string pattern = @"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$";
bool isValid = Regex.IsMatch(password, pattern);

该正则表达式验证密码必须包含字母和数字,且长度至少为 8。

4.2 验证电子邮件地址是否正确

string email = "abc@abc.com";
string pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$";
bool isValid = Regex.IsMatch(email, pattern);

该正则表达式验证电子邮件地址是否符合常见的规则,如包含用户名、域名和 TLD,使用英文字母、数字、下划线和连字符等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#基础知识之字符串和正则表达式 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • Unity C#执行bat脚本的操作

    下面是关于“Unity C#执行bat脚本的操作”的完整攻略: 概述 在Unity使用C#执行bat脚本,是一种在游戏开发过程中调用外部工具的常用方法,其中bat脚本可以实现一些与游戏开发有关的工具或者其他操作。下面将介绍如何在Unity中使用C#执行bat脚本以及提供两个示例说明。 步骤 步骤1:编写bat脚本 在项目目录下新建一个bat脚本文件,比如我们…

    C# 2023年6月3日
    00
  • xUnit 编写 ASP.NET Core 单元测试的方法

    xUnit 编写 ASP.NET Core 单元测试的方法 在ASP.NET Core应用程序中,可以使用xUnit编写单元测试。在本攻略中,我们将介绍如何使用xUnit编写ASP.NET Core单元测试,并提供两个示例说明。 1. 安装xUnit 在ASP.NET Core应用程序中,可以使用NuGet包管理器安装xUnit。可以按照以下步骤操作: 在V…

    C# 2023年5月16日
    00
  • c# datetime 格式化大全

    当涉及到 c# 的 datetime 格式化时,需要了解一些预定义的格式字符串、定界符和格式说明符。 预定义格式字符串 d 使用短日期格式显示日期:“yyyy/MM/dd” D 使用长日期格式显示日期:“yyyy’年’M’月’d’日’” f 使用长日期格式和短时间格式显示日期时间:“yyyy’年’M’月’d’日’ H:mm” F 使用长日期格式和长时间格式显…

    C# 2023年6月1日
    00
  • C#使用HttpWebRequest与HttpWebResponse模拟用户登录

    C#使用HttpWebRequest与HttpWebResponse模拟用户登录的完整攻略如下: 总览 本攻略将通过以下步骤完成模拟登陆: 构造登陆页面的请求,获取对应的Cookie。 通过获取到的Cookie构造真正的登陆请求,提交登陆信息。 发送登陆请求,获取登陆后的响应,做进一步的处理。 步骤一:构造登陆页面的请求 首先,我们需要发送一个请求来获取登陆…

    C# 2023年5月31日
    00
  • C#编程获取客户端计算机硬件及系统信息功能示例

    下面是详细讲解“C#编程获取客户端计算机硬件及系统信息功能示例”的完整攻略: 介绍 在开发过程中,我们有时需要获取客户端计算机的硬件和系统信息来帮助我们更好地处理业务逻辑。这个过程可以用C#编程来实现,这篇攻略将介绍如何通过C#获取客户端计算机的硬件和系统信息。 获取硬件信息 要获取客户端计算机的硬件信息,可以使用System.Management命名空间中…

    C# 2023年6月7日
    00
  • WPF实现上下滚动字幕效果

    WPF实现上下滚动字幕效果 在 WPF 中,实现上下滚动字幕效果通常可以使用 TranslateTransform 和 DoubleAnimation 实现。具体步骤如下: 步骤一:创建外层容器 首先,我们需要创建一个外层容器,用于包含字幕元素。这个容器可以是一个 StackPanel 或 Canvas,根据项目实际需求而定。这里我们使用 StackPane…

    C# 2023年6月1日
    00
  • asp.net实现的MD5加密和DES加解密算法类完整示例

    ASP.NET是微软开发的一个Web应用框架,可以使用C#或VB.NET等语言进行编写,同时它也提供了强密度加密算法,比如MD5和DES算法,用于对数据进行加密和解密。下面我来为您详细讲解“ASP.NET实现的MD5加密和DES加解密算法类完整示例”的攻略。 实现MD5加密算法类的示例 下面为您演示实现MD5加密算法类的完整示例代码: using Syste…

    C# 2023年5月31日
    00
  • C#实现HTTP上传文件的方法

    C#实现HTTP上传文件的方法,一般采用POST方法,可以通过以下步骤实现: 构建HTTP请求参数:我们需要指定文件的路径、文件名称、文件类型以及服务器地址等等。 打开文件,并读取文件内容:需要使用File类或者FileStream类进行文件的读取。 将文件内容放入HTTP请求体中:使用Stream将文件内容放入HTTP请求体中。 发送HTTP请求:使用Ht…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部