gpt4 book ai didi

excel - 使用 Like 和通配符进行 VBA 字符串搜索

转载 作者:行者123 更新时间:2023-12-04 21:09:50 26 4
gpt4 key购买 nike

我正在使用 Like 进行模式搜索运算符(operator)。到目前为止,这是我想出的:

if MyString Like "*sometext?" + "_*" then
debug.print "Match found!"
else
debug.print "Not a match"

我需要这个来匹配 sometext 之间的字符和 _是一个数字(只有一个数字,没有字母数字)。例如:
MyString='testingsometext3_whatever'应该是一场比赛,
MyString='testingsometext321_whatever'不应该匹配(有 3 个数字,而不仅仅是一个数字)
MyString='testingsometext_whatever'不应该是匹配的,因为 text 之间没有字符和 _ MyString='testingsometexts_whatever'不应该是匹配的( text_ 之间至少有一个字母数字) - 目前这对我不起作用,我需要帮助

最佳答案

虽然正则表达式可能有点矫枉过正,但我​​发现它更易于使用。

试试下面的代码:

With CreateObject("VBScript.RegExp")
.Pattern = "testingsometext\d_whatever"
If .Test(MyString) Then
debug.print "Match found!"
else
debug.print "Not a match"
End If
End With

打破模式

这个模式其实很简单。
  • testingsometext匹配文字字符串
  • \d匹配任何单个数字
  • _whatever匹配文字字符串


  • 重要要记住!

    这将匹配 blahtestingsometext1_whateverblah同样,因为没有字符串 anchor 的开始/结束。

    我为您选择了这条路线,因为您在模式的两端都放置了星号 ( *sometext?_*) 并假设这是需要的。如果这不是所需的行为,并且只想匹配字符串前后没有任何内容的确切短语,则将模式行更改为: .Pattern = "^testingsometext\d_whatever$" .

    关于excel - 使用 Like 和通配符进行 VBA 字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59144033/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com