Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove numbers from end of string if count of numbers(characters) > 8

Tags:

regex

excel

vba

enter image description here

I need to remove numbers from end of string if count of numbers(characters) > 8
I have used the below functions , but it remove all numbers from the string.
So, How this function can be modified to add a condition if count of numbers(characters) > 8
In advance, grateful for any helpful comments and answers.

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
like image 364
Leedo Avatar asked Dec 29 '25 06:12

Leedo


1 Answers

You can use

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

See the regex demo. If there must be at least 9 digits, replace 8 with 9.

Details:

  • \d{8,} - eight or more digits
  • (?=\.\w+$) - that are immediately followed with a . and one or more word chars and then end of string must follow
  • (?=\.[^.]+$) - the eight or more digits must be immediately followed with a . char and then one or more chars other than a . char till the end of string.
like image 139
Wiktor Stribiżew Avatar answered Dec 31 '25 20:12

Wiktor Stribiżew



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!