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#使用checkedListBox1控件链接数据库的方法示例

    下面是详细讲解“C#使用checkedListBox1控件链接数据库的方法示例”的攻略: 一、准备工作 在使用checkedListBox1控件链接数据库之前需要先安装相应的数据库,例如MySQL、SQL server等。然后需要在Visual Studio中打开一个C#的Windows From应用程序项目。在这个项目中,我们需要为它添加一个checked…

    C# 2023年5月31日
    00
  • C#实现根据实体类自动创建数据库表

    下面是 “C#实现根据实体类自动创建数据库表” 的完整攻略: 1. 实现方式 C#语言使用ORM框架可以方便地实现这个功能,其中EF (Entity Framework) 是比较常用的ORM框架之一,其核心功能是将数据库表映射到实体类上,从而实现面向对象的操作。 具体实现方式如下: 首先,需要定义一个实体类,用于描述需要存储到数据库中的实体属性。 示例: p…

    C# 2023年6月1日
    00
  • ASP.NET Core中的Razor页面介绍

    ASP.NET Core中的Razor页面介绍 Razor页面是一种基于ASP.NET Core的Web页面开发模型,它允许开发人员使用C#或VB.NET编写HTML页面。Razor页面提供了一种简单、易于维护和可扩展的方式来创建Web应用程序。本文将介绍ASP.NET Core中的Razor页面,包括如何创建、使用和扩展Razor页面。 步骤 步骤1:创建…

    C# 2023年5月17日
    00
  • c#实现ini文件读写类分享

    c#实现ini文件读写类分享 简介 在Windows系统中,ini文件长期以来一直是用来存储应用程序的配置参数的一种方法。尽管现在INI文件不再是首选方式,但是INI文件仍然很有用,因为它们简单并且容易编辑。 本文将分享如何使用C#实现INI文件读写功能的类。 实现 首先,我们需要创建一个新的INI文件读写类。以下是这个类的基本结构简述: using Sys…

    C# 2023年6月1日
    00
  • 解决C#调用dll提示

    下面我将为您详细讲解“解决C#调用dll提示”的完整攻略。 1.了解动态链接库 首先,我们需要了解什么是动态链接库。动态链接库(Dynamic Link Library,缩写为DLL)是Windows下的一种动态链接库文件,包含可重定位的代码、数据和资源,可以被多个软件程序同时使用。 2.将dll文件添加到项目中 在使用dll文件之前,我们需要将其添加到我们…

    C# 2023年5月15日
    00
  • 使用JavaScript和C#中获得referer

    获取referer主要用于获取用户从哪个页面跳转而来,在前端和后端均有相应方法。在JavaScript中可以使用document.referrer进行访问,在C#中可以使用Request.Headers[“Referer”]进行访问。下面是详细的攻略。 在JavaScript中获取referer 在前端中获取referer的方法比较简单,可以使用docume…

    C# 2023年6月6日
    00
  • C# 读取指定路径配置文件的方法

    下面是关于“C# 读取指定路径配置文件的方法”的完整攻略: 第一步:准备配置文件 在C#中,我们可以通过配置文件来保存程序运行时所需的参数和配置信息。配置文件一般采用XML格式,以提高数据的可读性和可维护性。 示例配置文件的内容如下: <?xml version="1.0" encoding="utf-8" ?&…

    C# 2023年6月1日
    00
  • C# Path.GetTempPath()方法: 获取系统临时文件夹的路径

    Path.GetTempPath()是C#的一个方法,它的作用是获取当前操作系统的临时文件目录路径。这个方法返回一个字符串,表示当前操作系统的临时文件目录路径。这个路径可能因操作系统的不同而不同,例如在Windows系统中,临时文件路径一般是”C:\Users\username\AppData\Local\Temp”。 使用方法如下: string temp…

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