Заменить все 'S на', если после s нет символа? - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу создать текстовую функцию ProperCase, которая преобразует:

O'Shanesy, Ben'S and frank'S tires

в:

O'Shanesy, Ben's and Frank's tires

Как получить strReturn.Replace ("'S", "' s") работать только тогда, когда после символа s нет символа?

Public Function fProperCase(ByVal strTextIn As String, Optional ByVal bolIncludingAnd As Boolean = True) As String

        Dim strReturn As String = strTextIn.Trim

        strReturn = StrConv(strTextIn, VbStrConv.ProperCase)

        If bolIncludingAnd = False Then
            strReturn = strReturn.Replace("And", "and")
        End If

        'Change all 'S to 's unless there is 
        'another letter straight after
        strReturn.Replace("'S", "'s")

        Return strReturn

    End Function

1 Ответ

4 голосов
/ 11 апреля 2019

Возможно, вам понадобится использовать конец слова индикатора Regex.

\ b - разрыв слова и будет работать как для пробелов, так и для конца строк.

strReturn = Regex.Replace(strReturn, "'S\b", "'s")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...