gpt4 book ai didi

regex - 从正则表达式中排除一些单词

转载 作者:行者123 更新时间:2023-12-03 00:44:25 28 4
gpt4 key购买 nike

我有一个函数可以在字符后插入空格,例如:/-

  Private Function formatColon(oldString As String) As String

Dim reg As New RegExp: reg.Global = True: reg.Pattern = "(\D:|\D/|\D-)"
Dim newString As String: newString = reg.Replace(oldString, "$1 ")
formatColon = Replace(Replace(Replace(newString, ": ", ": "), "/ ", "/ "), "- ", "- ")

End Function

代码可以轻松排除日期。我也想排除一些特定的字符串,例如“w/d”。有什么办法吗?

之前 abc/abc/15/06/2017 ref:123243-11 ref-111 w/d

abc/abc/15/06/2017 ref: 123243-11 ref- 111 w/d

我想排除最后的 w/d

最佳答案

您可以使用 (?!w/d) 前瞻以避免将 w/d 与您的模式匹配:

Dim oldString As String, newString As String
Dim reg As New RegExp
With reg
.Global = True
.Pattern = "(?!w/d)\D[:/-]"
End With
oldString = "abc/abc/15/06/2017 ref:123243-11 ref-111 w/d"
newString = reg.Replace(oldString, "$& ")
Debug.Print newString

enter image description here

请参阅regex demo .

图案详细信息

  • (?!w/d) - 后面不跟有 w/d
  • 的位置
  • \D - 任何非数字字符
  • [:/-] - :/- 字符。

$& 反向引用指的是替换模式中的整个匹配,无需用捕获括号将整个模式括起来。

关于regex - 从正则表达式中排除一些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50172145/

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