当前位置: 首页 > news >正文

c#中的正则表达式和日期的使用(超全)

在 C# 中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于执行各种字符串搜索、替换和验证任务。以下是一些常用的正则表达式示例及其用途:

1. 邮箱地址验证

string emailPattern = @"^[^@\s]+@[^@\s]+\.[^@\s]+$";

2. URL 验证

string urlPattern = @"^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$";

3. 电话号码验证(简单示例)

string phonePattern = @"^\+?(\d{1,3})?[-. ]?\(?(\d{3})\)?[-. ]?(\d{3})[-. ]?(\d{4})$";

4. 身份证号码验证(中国)

string idCardPattern = @"^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[Xx0-9]$";

5. IP 地址验证

string ipPattern = @"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$";

6. 空白行检测

string blankLinePattern = @"^\s*$";

7. 十六进制颜色代码验证

string hexColorPattern = @"^#(?:[0-9a-fA-F]{3}){1,2}$";

8. 邮政编码验证(中国)

string postalCodePattern = @"^[0-9]{6}$";

9. 只包含字母和数字的字符串验证

string alphanumericPattern = @"^[a-zA-Z0-9]+$";

10. 匹配 HTML 标签

string htmlTagPattern = @"<(.*)>.*<\/\1>";

使用正则表达式示例

以下是一个使用正则表达式检查字符串是否为有效电子邮件地址的示例:

using System;
using System.Text.RegularExpressions;
​
class Program
{static void Main(){string email = "example@example.com";bool isValid = Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$");Console.WriteLine(isValid ? "Valid email." : "Invalid email.");}
}

datetime

DateTime 类在 C# 中提供了大量的 API 来处理日期和时间。以下是一些常用的 DateTime API:

属性

  • Now: 获取当前本地日期和时间。

  • UtcNow: 获取协调世界时(UTC)的当前日期和时间。

  • Today: 获取今天的日期,时间部分为零点。

构造函数

  • DateTime(): 创建一个 DateTime 对象,默认为当前时间。

  • DateTime(long ticks): 从自 0001 年 1 月 1 日以来的滴答数创建 DateTime 对象。

  • DateTime(int year, int month, int day): 创建指定年、月、日的 DateTime 对象,时间部分默认为零点。

  • DateTime(int year, int month, day, int hour, int minute): 创建指定年、月、日、时、分的 DateTime 对象。

方法

  • Add(TimeSpan): 返回一个新的 DateTime 对象,它是将指定的 TimeSpan 值添加到当前对象的时间。

  • AddDays(double): 返回一个新的 DateTime 对象,它是将指定天数添加到当前对象的时间。

  • AddHours(double): 返回一个新的 DateTime 对象,它是将指定小时数添加到当前对象的时间。

  • AddMilliseconds(double): 返回一个新的 DateTime 对象,它是将指定毫秒数添加到当前对象的时间。

  • AddMinutes(double): 返回一个新的 DateTime 对象,它是将指定分钟数添加到当前对象的时间。

  • AddMonths(int): 返回一个新的 DateTime 对象,它是将指定月份数添加到当前对象的时间。

  • AddSeconds(double): 返回一个新的 DateTime 对象,它是将指定秒数添加到当前对象的时间。

  • AddYears(int): 返回一个新的 DateTime 对象,它是将指定年份数添加到当前对象的时间。

  • CompareTo(Object): 比较两个 DateTime 对象的顺序。

  • Equals(Object): 判断两个 DateTime 对象是否相等。

  • IsDaylightSavingTime(): 判断当前 DateTime 对象是否处于夏令时。

  • Subtract(TimeSpan): 返回一个新的 DateTime 对象,它是当前对象的时间减去指定的 TimeSpan 值。

  • ToString(): 将 DateTime 对象转换为字符串。

  • ToString(String): 使用指定的格式字符串将 DateTime 对象转换为字符串。

  • ToLocalTime(): 将 DateTime 对象从 UTC 时间转换为本地时间。

  • ToUniversalTime(): 将 DateTime 对象从本地时间转换为 UTC 时间。

静态方法

  • DaysInMonth(int year, int month): 确定指定年份和月份的天数。

  • IsLeapYear(int year): 确定指定年份是否为闰年。

操作符

  • ==!=: 比较两个 DateTime 对象是否相等或不相等。

  • -: 从 DateTime 对象中减去 TimeSpan 对象。

  • ><: 比较两个 DateTime 对象的大小。

格式化方法

  • DateTimeFormatInfo 类提供了格式化 DateTime 对象的方法,例如 GetMonthName(int)GetDayName(int)

使用这些 API,你可以执行日期和时间的算术、格式化、比较和转换等操作。例如:

DateTime now = DateTime.Now;
DateTime tomorrow = now.AddDays(1);
int daysInMonth = DateTime.DaysInMonth(2024, 7);
bool isLeapYear = DateTime.IsLeapYear(2024);
string formattedDate = now.ToString("yyyy-MM-dd");

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • spring的三级缓存与源码分析--解决循环依赖
  • 内衣洗衣机怎么选?五款超耐用内衣洗衣机推荐!
  • 金牌挑战——奥运知识大比拼
  • 【C语言】程序环境,预处理,编译,汇编,链接详细介绍,其中预处理阶段重点讲解
  • 全球汽车用MEMS加速度计市场规划预测:未来六年CAGR为2.8%
  • STM32ADC
  • Java中的抽象类和接口区别
  • TypeScript函数类型:提升函数的类型安全性和可读性
  • 2024年厦门市大数据创新应用大赛重磅开赛,邀您来战!
  • 【数据结构初阶】详解:实现循环队列、用栈实现队列、用队列实现栈
  • 通过内网穿透远程访问自己的项目
  • 【力扣】3128. 直角三角形 JAVA
  • matlab y=sin(x) - 2/π*(x)函数绘制
  • 1.1、centos stream 9安装Kubernetes v1.30集群 环境说明
  • CSS mask-image 实现边缘淡出过渡效果
  • IDEA 插件开发入门教程
  • Java IO学习笔记一
  • leetcode98. Validate Binary Search Tree
  • PHP CLI应用的调试原理
  • php的插入排序,通过双层for循环
  • spark本地环境的搭建到运行第一个spark程序
  • 百度小程序遇到的问题
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 规范化安全开发 KOA 手脚架
  • 基于webpack 的 vue 多页架构
  • 技术胖1-4季视频复习— (看视频笔记)
  • 你真的知道 == 和 equals 的区别吗?
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 从如何停掉 Promise 链说起
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​configparser --- 配置文件解析器​
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #NOIP 2014# day.2 T2 寻找道路
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (4)logging(日志模块)
  • (55)MOS管专题--->(10)MOS管的封装
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Python) SOAP Web Service (HTTP POST)
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)计算机毕业设计高校学生选课系统
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (新)网络工程师考点串讲与真题详解
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net各种迷惑命名解释
  • .net和php怎么连接,php和apache之间如何连接
  • .NET框架设计—常被忽视的C#设计技巧
  • ?php echo ?,?php echo Hello world!;?
  • @Data注解的作用
  • @ModelAttribute 注解