Function isDigit(ch As String) As Boolean Return ch >= "0" And ch <= "9" End Function Function to_snake_case(s As String) As String Dim As Integer l = Len(s) Dim As String snake = Trim(s), tmp = snake For i As Integer = 1 To Len(snake) If isDigit(Mid(snake, i, 1)) Then Continue For Elseif Instr(Mid(snake, i, 1), " ") Then Mid(snake, i) = "_" Continue For Elseif Instr(Mid(snake, i, 1), Any "\:/-_!.") Then Continue For Elseif Mid(snake, i, 1) = Ucase(Mid(snake, i, 1)) Then tmp = Lcase(Mid(snake, i,1)) Mid(snake, i) = "_" snake = Left(snake, i) & tmp & Mid(snake, i+1) End If Next i Return snake End Function Function toCamelCase(s As String) As String Dim As Integer l = Len(s) Dim As String camel = Trim(s), tmp = camel For i As Integer = 1 To Len(camel) If Instr(Mid(camel, i, 1), Any ":/!.") Then Continue For Elseif Instr(Mid(camel, i, 1), Any " _-") Then camel = Left(camel, i-1) & Ucase(Mid(camel, i+1,1)) & Mid(camel, i+2) End If Next i Return camel End Function Dim Shared tests(1 To ...) As String*33 => {_ "snakeCase", "snake_case", "variable_10_case", "variable10Case", _ "\u025brgo rE tHis", "ergo rE tHis", "hurry-up-joe!", _ "c://my-docs/happy_Flag-Day/12.doc", " spaces "} Sub test0(title As String, fn As String) Print title For i As Integer = 1 To Ubound(tests) Dim As String texto = tests(i) & " ===> " & to_snake_case(tests(i)) Locate i+1, 41 - Len(texto) / 2 : Print texto Next i End Sub Sub test1(title As String, fn As String) Print title For i As Integer = 1 To Ubound(tests) Dim As String texto = tests(i) & " ===> " & toCamelCase(tests(i)) Locate i+12, 41 - Len(texto) / 2 : Print texto Next i End Sub test0 "to_snake_case:", "to_snake_case" Print test1 "toCamelCase:", "toCamelCase" Sleep