VB.net-VSTO插件查找定位指定字符单元格功能

继续学习查找定位功能,结合【条件格式】

VB.net-VSTO插件查找定位指定字符单元格功能(包含、不包含,开头、结尾)
下面是前面的学习内容
ExcelVBA运用Excel的【条件格式】(一)
基础知识
ExcelVBA运用Excel的【条件格式】(二)
字符包含或不包含
ExcelVBA运用Excel的【条件格式】(三)
字符开头或结尾
ExcelVBA运用Excel的【条件格式】(四)
前10,后10
ExcelVBA运用Excel的【条件格式】(五)
A<数据x<B
ExcelVBA运用Excel的【条件格式】(六)
最大、最小

【问题】

我们能不能把(二)(三)的功能整合在起,并整合进插件“哆哆Excel”中

经过一番的努力,调试,完成啦

【效果】

如图

69366ce6c5904ce367c6e04bbae3d24c.png

包含

c814a4780b6eea8f3f4a55b7be898267.png

不包含

70e9f7c3c04e52aad856c742444d50e9.png

开头

结尾

同样的效果,这里就不上图啦

【知识点】

在VB.NET中,正则表达式主要通过System.Text.RegularExpressions命名空间下的Regex类来实现。Regex类提供了多种方法和属性来执行正则表达式操作,如匹配、搜索、替换等。下面是一些常用的方法和属性:

方法

  1. Match(String input): 在输入字符串中搜索第一个与正则表达式模式匹配的项。

  2. Matches(String input): 在输入字符串中搜索所有与正则表达式模式匹配的项,并返回一个MatchCollection集合。

  3. Replace(String input, String replacement): 在输入字符串中搜索所有与正则表达式模式匹配的项,并将它们替换为指定的替换字符串。

  4. Split(String input): 根据正则表达式模式拆分输入字符串,并返回一个字符串数组。

  5. IsMatch(String input): 指示输入字符串中是否存在与正则表达式模式匹配的项。

属性

Regex类本身并没有直接暴露很多属性,但它通过其方法返回的MatchMatchCollection对象提供了许多有用的属性。这些属性主要用于获取匹配项的详细信息。

  • Match 对象的属性:

    • Success: 指示匹配是否成功。

    • Value: 获取匹配的字符串。

    • Index: 获取匹配的起始位置。

    • Length: 获取匹配的字符串的长度。

    • Groups: 获取捕获的子表达式的集合。

  • Group 对象的属性 (通过Match.Groups访问):

    • Success: 指示捕获是否成功。

    • Value: 获取捕获的字符串。

    • Index: 获取捕获的起始位置。

    • Length: 获取捕获的字符串的长度。

    • Captures: 获取特定捕获组的所有捕获的集合(对于某些复杂的正则表达式匹配很有用)。

示例

以下是一个简单的VB.NET示例,演示如何使用Regex类来查找字符串中的所有数字:

vb复制代码

Imports System.Text.RegularExpressions


Module Module1
Sub Main()
Dim input As String = "There are 123 apples and 456 oranges."  
Dim pattern As String = "\d+"  


Dim matches As MatchCollection = Regex.Matches(input, pattern)


For Each match As Match In matches
Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
Next  
End Sub  
End Module

在这个示例中,正则表达式"\d+"用于匹配一个或多个数字。Regex.Matches方法用于查找输入字符串中所有与模式匹配的项,并将它们存储在MatchCollection对象中。然后,我们遍历这个集合,打印出每个匹配项的值和位置。

【我的代码】

关键代码

If RadioButton1.Checked = True Then
            pattern = ".*" + seachText + ".*"
        End If
        If RadioButton2.Checked = True Then
            pattern = "^(?!.*" + seachText + ").*$"
        End If
        If RadioButton3.Checked = True Then
            pattern = "^" + seachText  '开头Dim pattern As String = "^XXX"
        End If
        If RadioButton4.Checked = True Then
            pattern = seachText + "$" '结尾Dim pattern As String = "XXX$"
        End If

如果有问题可以问

49a395e57d05508924b04e242c0fe66e.png

也可以问

4d69a84a5972ad80e4b63c5bfbfb056d.png

====若有用,请转发免费学习====

关注看更多文章

6e778e226c03e43fff0dc3d6573dedb3.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值