excel - 如果数字(字符)> 8,则从字符串末尾删除数字

标签 excel regex vba

enter image description here

如果数字(字符)> 8,我需要从字符串末尾删除数字
我使用了以下函数,但它从字符串中删除了所有数字。
那么,如何修改此函数以添加条件 if count of numbers(characters) > 8
预先感谢任何有用的评论和答案。

Option Explicit
 
Function StripNumber(stdText As String)
  Dim str As String, i As Integer
 
    stdText = Trim(stdText)
 
    For i = 1 To Len(stdText)
        If Not IsNumeric(Mid(stdText, i, 1)) Then
            str = str & Mid(stdText, i, 1)
        End If
    Next i
        StripNumber = str ' * 1
End Function
 
Function Remove_Number(Text As String) As String
    With CreateObject("VBScript.RegExp")
      .Global = True
      .Pattern = "[0-9]"
      Remove_Number = .Replace(Text, "")
    End With
End Function

最佳答案

你可以使用

\d{8,}(?=\.\w+$)
\d{8,}(?=\.[^.]+$)

参见 regex demo .如果必须至少有 9 位数字,请将 8 替换为 9。

详细信息:

  • \d{8,} - 八位或更多位
  • (?=\.\w+$) - 紧随其后的是 . 和一个或多个单词字符,然后是字符串结尾
  • (?=\.[^.]+$) - 八位或更多数字必须紧跟 . 字符,然后是一个或多个其他字符比 . 字符直到字符串结尾。

关于excel - 如果数字(字符)> 8,则从字符串末尾删除数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72182176/

相关文章:

python - 遍历帐号列中的每一行并使用它们读取其他 Excel 文件

python - 复制表 - Openpyxl : type object 'Workbook' has no attribute 'copy_worksheet'

java - 如何更改 java 中的正则表达式搜索以忽略大小写

javascript - 检查字符串是否包含另一个字符串的 3 个字符长的子字符串

vba - 如何解锁和锁定 Excel 单元格以运行宏

excel - 可变长度循环中的 VBA "subscript out of range"。找不到问题

javascript - 为什么这个正则表达式必须用括号括起来才能匹配?

excel - 创建一个未保存的空白工作簿

Excel VBA 添加自动筛选器(如果不存在)

EXcel VBA 对象被破坏