Здравствуйте! По найденному на Вашем сайте нижеприведенному программному коду вопросов нет.
Прошу Вас помочь внедрить в эту функцию строковые переменные (аргументы) ReplaceWhat и ReplaceWith вместо
традиционного фиксированного значения .Replace, с тем чтобы функция возвращала исходную строку, в которой в найденных вхождениях
заменяется уже конкретно заданное "внутреннее" вхождение (если таковое найдено) заданным значением.
Например фрагменты по маске "\s\d\d\s\d\d\d",
в них заменить "7 5" (если найдены по фильтру ReplaceWhat) на "5 7" (значение ReplaceWith)
Прошу ограничиться VBScript Regular Expressions, если это возможно вообще.
Пытаюсь использовать Replace(String, What, Whith) но опыта нет в синтаксисе.
С уважением и Спасибо
Прошу Вас помочь внедрить в эту функцию строковые переменные (аргументы) ReplaceWhat и ReplaceWith вместо
традиционного фиксированного значения .Replace, с тем чтобы функция возвращала исходную строку, в которой в найденных вхождениях
заменяется уже конкретно заданное "внутреннее" вхождение (если таковое найдено) заданным значением.
Например фрагменты по маске "\s\d\d\s\d\d\d",
в них заменить "7 5" (если найдены по фильтру ReplaceWhat) на "5 7" (значение ReplaceWith)
Прошу ограничиться VBScript Regular Expressions, если это возможно вообще.
Пытаюсь использовать Replace(String, What, Whith) но опыта нет в синтаксисе.
С уважением и Спасибо
Код |
---|
'Поиск по регулярному выражению и замена. Public Function RegExpFindReplace(str As String, _ Pattern As String, _ Replace As String, _ Optional Globa1 As Boolean = True, _ Optional IgnoreCase As Boolean = False, _ Optional Multiline As Boolean = False) _ As String RegExpFindReplace = str 'Пока ничего не меняли If Not str Like "" And Not Pattern Like "" Then Dim RegExp As Object 'Для регулярного выражения Set RegExp = CreateObject("VBScript.RegExp") With RegExp .Global = Globa1 'Все совпадения или только первое? .IgnoreCase = IgnoreCase 'Регистр неважен? .Multiline = Multiline 'Игнорировать переносы строк? .Pattern = Pattern 'Регулярка End With 'Найти/заменить On Error Resume Next RegExpFindReplace = RegExp.Replace(str, Replace) Set RegExp = Nothing 'Очистка памяти End If End Function |