gpt4 book ai didi

regex - VBScript RegExp 对象中模式的语法是什么?

转载 作者:行者123 更新时间:2023-12-02 01:24:22 27 4
gpt4 key购买 nike

我不太熟悉 VB 脚本,并且在使用我的 regexp 对象的 pattern 属性的语法时遇到了问题。

我有一些看起来像这样的数据:

Front SHD Trip CLEAR OBSTRUCTION BEFORE CONTINUING [Table Position = 0mmFwd] Front SHD Trip CLEAR OBSTRUCTION BEFORE CONTINUING [Table Position = 563mmFwd]

我想从这些记录中去掉 [Table Position = x] 部分,所以我创建了一个小函数。虽然没有错误,但它并没有像预期的那样去除字符串的末尾,我相当确定问题出在我在这一行中的语法:

objRegExp.Pattern = "[*]"

这是整个函数:

Function RemoveTablePosition(AlarmText)

'Initialise a new RegExp object
Dim objRegExp, strNewAlarmText
Set objRegExp = New Regexp

'Set the RegExp object's parameters
objRegExp.IgnoreCase = True
objRegExp.Global = True

'Look for [Table Position = xx] at the end of the code text (they always follow the same format)
objRegExp.Pattern = "[*]"

'Replace all [Table Position = xx] with the empty string to effectively remove them
strNewAlarmText = objRegExp.Replace(AlarmText, "")

'Return the new alarm text value
RemoveTablePosition = strNewAlarmText
Set objRegExp = Nothing

End Function

有人能指出我正确的方向吗?提前致谢!

最佳答案

"[*]" 是匹配 * 文字字符的字符类。

你可以使用

\[[^\]]*]$

\[.*?]$

参见 regex demo .如果您还需要匹配 [...] 之前的可选空格,请在模式开头添加 \s*

解释

  • \[ - 文字 [ 符号
  • [^\]]* - 除了 ] 之外的零个或多个符号(如果没有 [] , 把这个替换成[^\][]*)

  • .*? - 0+ 除换行符外的任何字符,尽可能少,直到第一个...
  • ] - 文字 ] 符号,位于...
  • $ - 字符串结尾

\[[^\]]*]$\[.*?]$ 的区别在于前者还会匹配 之间的换行符>[](如果有)和 \[.*?]$ 不会。

关于regex - VBScript RegExp 对象中模式的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38013018/

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