Здравствуйте, как найти в ячейке А1 знаки "?" и каждый 2-3-4-5..N поменять на знак "&"? И менять только каждый 2-3-4-5 знак "?", а если он один всего, то тоже ничего не менять. Спасибо.
Здравствуйте, как найти в ячейке А1 знаки "?" и каждый 2-3-4-5..N поменять на знак "&"? И менять только каждый 2-3-4-5 знак "?", а если он один всего, то тоже ничего не менять. Спасибо.AdwordsDirect
AdwordsDirect, вариант функций: zzz в B1 или yyy в B2
[vba]
Код
Function zzz$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\?" zzz = .Replace(t, "@"): .Global = True: .Pattern = "\?" zzz = .Replace(zzz, "&"): .Pattern = "@": zzz = .Replace(zzz, "?") End With End Function
[/vba]
[vba]
Код
Function yyy$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\?": .Global = True: yyy = .Replace(t, "&"): .Pattern = "\&": .Global = False: yyy = .Replace(yyy, "?") End With End Function
[/vba]
AdwordsDirect, вариант функций: zzz в B1 или yyy в B2
[vba]
Код
Function zzz$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\?" zzz = .Replace(t, "@"): .Global = True: .Pattern = "\?" zzz = .Replace(zzz, "&"): .Pattern = "@": zzz = .Replace(zzz, "?") End With End Function
[/vba]
[vba]
Код
Function yyy$(t$) With CreateObject("VBScript.RegExp"): .Pattern = "\?": .Global = True: yyy = .Replace(t, "&"): .Pattern = "\&": .Global = False: yyy = .Replace(yyy, "?") End With End Function
AdwordsDirect, добавлю к сообщению #4 ,что в функции yyy не обязательно экранировать знак &,имеется двенадцать метасимволов в контексте регулярных выражений в большинстве диалектов(Perl,PCRE...),в контексте символьного класса четыре. $()*\+.?^[{|
в VBA одиннадцать метасимволов в контексте регулярных выражений,что демонстрирует функция bbb в файл-примере $()*\+.?^[|
AdwordsDirect, добавлю к сообщению #4 ,что в функции yyy не обязательно экранировать знак &,имеется двенадцать метасимволов в контексте регулярных выражений в большинстве диалектов(Perl,PCRE...),в контексте символьного класса четыре. $()*\+.?^[{|
в VBA одиннадцать метасимволов в контексте регулярных выражений,что демонстрирует функция bbb в файл-примере $()*\+.?^[|sv2014