024初识正则表达式

本文介绍正则表达式的概念,包括原义文本字符和转义字符,以及在.NET Framework中使用Regex类进行字符串处理的方法。通过示例演示了如何进行匹配搜索,如区分重复单词、转换标题格式和确保句子大写正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        正则表达式语言是一种专门用于字符串处理的语言。正则表达式语言由两种基本字符类型组成:原义文本字符和转义字符。转
义字符使正则表达式具有处理能力。

      使用正则表达式,可以对字符串执行许多复杂而高级的操作.

  • 区分字符串中所有重复的单词。
  • 把所有单词都转换为标题格式。
  • 把长于3个字符的所有单词都转换为标题格式。
  • 确保句子有正确的大写形式。
  • 区分URL的各个元素。

    在.NET Framework中使用正则表达式时,需要使用Regex类。Regex类表示不可变(只读)的正则表达式,它包含多种静态方法,其中常用的就是Matches()方法,该方法可以搜索正则表达式的所有匹配项,并返回所有成功的匹配。.NET Framework使用Match类表示正则表达式匹配操作的结果,另外Match类的Success属性可以指示是否已找到匹配。

Regex 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.text.regularexpressions.regex?view=netcore-3.1

表示不可变的正则表达式。

方法

 
Match(String)

在指定的输入字符串中搜索 Regex 构造函数中指定的正则表达式的第一个匹配项。

RegexOptions 枚举

字段

 
CultureInvariant512

指定忽略语言中的区域性差异。 有关详细信息,请参阅正则表达式选项文章中的“使用固定区域性的比较”部分。

ExplicitCapture4

指定唯一有效的捕获是显式命名或编号的 (?<name>...) 形式的组。这使未命名的圆括号可以充当非捕获组,并且不会使表达式的语法 (?:...) 显得笨拙。有关详细信息,请参阅正则表达式选项文章中的“仅显式捕获”部分。

IgnoreCase1

指定不区分大小写的匹配。 有关详细信息,请参阅正则表达式选项文章中的“不区分大小写匹配”部分。

IgnorePatternWhitespace32

消除模式中的非转义空白并启用由 # 标记的注释。 但是,此值不影响或消除标记单独的正则表达式语言元素的开头的字符类、数值量词或标记的空格。 有关详细信息,请参阅正则表达式选项一文中的“忽略空格”部分。

Multiline2

多行模式。 更改 ^ 和 $ 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。 有关详细信息,请参阅正则表达式选项文章中的“多行模式”部分。

None0

指定不设置任何选项。 有关正则表达式引擎的默认行为的详细信息,请参阅正则表达式选项文章中的“默认选项”部分。

RightToLeft64

指定搜索从右向左而不是从左向右进行。 有关详细信息,请参阅正则表达式选项文章中的“从右到左模式”部分。

Singleline16

指定单行模式。 更改点 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。 有关详细信息,请参阅正则表达式选项文章中的“单行模式”部分。

    在.NET Framework中使用正则表达式时,需要使用Regex类。Regex类表示不可变(只读)的正则表达式,它包含多种静态方法,其中常用的就是Matches()方法,该方法可以搜索正则表达式的所有匹配项,并返回所有成功的匹配。.NET Framework使用Match类表示正则表达式匹配操作的结果,另外Match类的Success属性可以指示是否已找到匹配。
    下面一个小示例,执行并显示一些搜索的结果,以此说明正则表达式的一些特性,以及如何在Visual Basic中使用.NET正则表达式引擎。为了说明正则表达式.NET类,这里先进行一次纯文本的搜索,这次搜索不带任何转义序列或正则表达式命令,通常将这个搜索字符串称为模式。

 

Imports System.Text.RegularExpressions

Module Module1

    Sub Main()
        Dim Text As String = "这些都是可以在Visual Basic中用" & "System.String和System.Text.StringBuilder的各种方法执行的任务"
        Dim Pattern As String = "String"
        Dim Matches As MatchCollection = _
            Regex.Matches(Text, Pattern, RegexOptions.IgnoreCase Or RegexOptions.ExplicitCapture)
        For Each NextMatch In Matches
            Console.WriteLine(NextMatch.index)
        Next

        Console.Read()
    End Sub

End Module

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值