Доброго времени суток. Подскажите, как с помощью регулярных выражений вывести из строки содержимое скобок через точку с запятой. Примеры: (223) выведет 223; (344)/(563) выведет 344;563; ((42) + 2* ((42)+(43)) / (121) выведет 42;43;121; Т.е. в строке могут встречаться любые символы, но то, что в скобках, обязательно целые числа Подскажите, хотя бы, с чего начать. Спасибо!
Доброго времени суток. Подскажите, как с помощью регулярных выражений вывести из строки содержимое скобок через точку с запятой. Примеры: (223) выведет 223; (344)/(563) выведет 344;563; ((42) + 2* ((42)+(43)) / (121) выведет 42;43;121; Т.е. в строке могут встречаться любые символы, но то, что в скобках, обязательно целые числа Подскажите, хотя бы, с чего начать. Спасибо!C_sanches
а почему для третьей строки 42 - в результате один раз? [vba]
Код
Function f$(s$) Set r = CreateObject("vbscript.regexp") r.Pattern = "\((\d+)\)": r.Global = True Set m = r.Execute(s) For Each e In m: f = f & ";" & e.submatches(0): Next f = Mid(f, 2) End Function
[/vba]
для уникальных [vba]
Код
Function g$(s$) Set r = CreateObject("vbscript.regexp") Set d = CreateObject("scripting.dictionary") r.Pattern = "\((\d+)\)": r.Global = True Set m = r.Execute(s) For Each e In m: d(e.submatches(0)) = 0&: Next g = Join(d.keys, ";") End Function
[/vba]
а почему для третьей строки 42 - в результате один раз? [vba]
Код
Function f$(s$) Set r = CreateObject("vbscript.regexp") r.Pattern = "\((\d+)\)": r.Global = True Set m = r.Execute(s) For Each e In m: f = f & ";" & e.submatches(0): Next f = Mid(f, 2) End Function
[/vba]
для уникальных [vba]
Код
Function g$(s$) Set r = CreateObject("vbscript.regexp") Set d = CreateObject("scripting.dictionary") r.Pattern = "\((\d+)\)": r.Global = True Set m = r.Execute(s) For Each e In m: d(e.submatches(0)) = 0&: Next g = Join(d.keys, ";") End Function
спасибо огромное, именно то, что нужно. Я почти был близок к этому =) а можно пояснить, как во втором случае выбираются уникальные? За это отвечает объект scripting.dictionary?
спасибо огромное, именно то, что нужно. Я почти был близок к этому =) а можно пояснить, как во втором случае выбираются уникальные? За это отвечает объект scripting.dictionary?C_sanches