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日

相关文章

  • C#程序调用cmd.exe执行命令

    C#程序调用cmd.exe执行命令 在C#程序中,有时候需要调用cmd.exe执行命令。本文将介绍如何在C#程序中调用cmd.exe执行命令。 步骤1:使用Process类调用cmd.exe 首先,我们需要使用C#的Process类调用cmd.exe。以下是一个简单的示例: using System.Diagnostics; Process process …

    C# 2023年5月15日
    00
  • C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)

    C#版免费离线人脸识别之虹软ArcSoft V3.0(推荐)是一款完全开源免费的人脸识别程序,使用者可以在本地环境下运行,不需要联网即可进行人脸识别。下面是详细的使用攻略。 1. 安装ArcSoft SDK 首先,在官网下载并安装ArcSoft SDK,根据自己的操作系统版本选择相应的SDK安装包,可以在ArcSoft官网的开发者中心下载: http://w…

    C# 2023年5月15日
    00
  • C#中读取App.config配置文件代码实例

    下面就给您详细讲解一下在C#中读取App.config配置文件的完整攻略。 什么是App.config? 在C#项目中,App.config是存放配置信息的文件,经常用来保存应用程序的配置信息,比如数据库连接字符串、路径等等。在项目中对于一些数据的统一管理是非常有用的,修改方便,且使用配置文件时只需要修改App.config即可不用修改代码。 读取App.c…

    C# 2023年6月1日
    00
  • ASP.NET Core MVC 从入门到精通之Razor语法

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启…

    C# 2023年4月24日
    00
  • asp.net(C#)函数对象参数传递的问题

    ASP.NET是一种基于.NET框架的Web应用程序开发技术,而C#是一种强类型的编程语言。在ASP.NET(C#)中,函数对象参数传递是必不可少的组成部分。本文将详细介绍如何处理ASP.NET(C#)函数对象参数传递的问题。 什么是函数对象参数传递? 函数对象参数传递是指在C#中传递函数对象作为参数的过程。这种方式可以让我们更加灵活地处理业务逻辑,实现不同…

    C# 2023年6月1日
    00
  • C#中Byte转换相关的函数

    下面是 C# 中 Byte 转换相关的函数的完整攻略: 1. Byte 转换为字符串 方法一:ToString() 使用 Byte 类型的 ToString() 方法可以将 Byte 类型转换为字符串类型。 byte number = 97; string str = number.ToString(); 方法二:BitConverter.ToString(…

    C# 2023年6月7日
    00
  • asp.net core 2.0 webapi集成signalr(实例讲解)

    ASP.NET Core 2.0 WebAPI 集成 SignalR 是一种常见的实现实时通信的方式。以下是 ASP.NET Core 2.0 WebAPI 集成 SignalR 的完整攻略: 步骤一:创建 ASP.NET Core 2.0 WebAPI 应用程序 首先,需要创建一个 ASP.NET Core 2.0 WebAPI 应用程序。可以使用以下命令…

    C# 2023年5月17日
    00
  • C#集合类用法实例代码详解

    C#集合类用法实例代码详解 本文将详细展示C#集合类的用法,包括List、Dictionary、HashSet等常用集合类。你将学习到如何创建并操作这些集合类,并且会有两个实例说明帮助你更好地理解。 List 创建和初始化List 创建List可以直接使用List的构造函数,也可以使用Collection初始化器 List<int> list1 …

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