Я использую VBScript RegExVBScript Regular Expression Split PascalCase
Dim RegEx : RegEx = new RegExp
Dim stringValue : stringValue = "StudentID"
Dim NiceName
With RegEx
.Pattern = "([A-Z])(?![A-Z])"
.IgnoreCase = False
.Global = True
End With
NiceName= RegEx.Replace(stringValue , " $1")
NiceName должен быть "Student ID"
Я получаю "Studenti D"
Примечание: эта модель работает для строк которые не имеют двух прописных букв рядом друг с другом.
Я попытался следующие закономерности, но они порождают ошибки в VBScript:
"(?<!^)([A-Z][a-z]|(?<=[a-z])[A-Z])"
"(?<=[A-Z])(?=[A-Z][a-z])|(?<=[^A-Z])(?=[A-Z])|(?<=[A-Za-z])(?=[^A-Za-z])"