Если Вы настолько серьезно взялись тогда так 89162280864;89991112233;89162280864;89991112233;89991112233;89991112233 и так далее, строка содержащая все телефонные номера без повторов и лишниго мусора в виде скобочек тире пробелов...(в приведенной строке повторы не убирал)
Если Вы настолько серьезно взялись тогда так 89162280864;89991112233;89162280864;89991112233;89991112233;89991112233 и так далее, строка содержащая все телефонные номера без повторов и лишниго мусора в виде скобочек тире пробелов...(в приведенной строке повторы не убирал)Poltava
Сообщение отредактировал Poltava - Воскресенье, 10.02.2013, 00:01
Должны теоретически! но это же люди! а они то 8 недописать легко могут так что такой 9162280864 тоже имеет право на существование причем 8 перед ним в результирующей строке добавлять не стоит, хотя если это упростит вам задачу то можно. Если Вы нуб то о себе я вообще молчу!
Должны теоретически! но это же люди! а они то 8 недописать легко могут так что такой 9162280864 тоже имеет право на существование причем 8 перед ним в результирующей строке добавлять не стоит, хотя если это упростит вам задачу то можно. Если Вы нуб то о себе я вообще молчу!Poltava
Сообщение отредактировал Poltava - Воскресенье, 10.02.2013, 00:18
Function pt$(r) Dim re As Object, x As Object, s$, i% Set re = CreateObject("vbscript.regexp") Set rm = CreateObject("vbscript.regexp") With re .Global = True .MultiLine = True .Pattern = "(^|\D)(\d{1}(?:[-\\\(\s]{0,2})\d{3}(?:[-\\\)\s]{0,2})\d{3}(?:[-\s]?)\d{2}(?:[-\s]?)\d{2})(?=\D|$)" End With With rm .Global = True .MultiLine = False .Pattern = "[-\\\(\)\s]" End With Set x = re.Execute(r) If x.Count Then For i = 0 To x.Count - 1 s = s & ";" & rm.Replace(x.Item(i).submatches(1), "") Next pt = Mid(s, 2) End If End Function
[/vba]
коллекции прикрутите сами?
вариант (не уверен. что оптимальный) [vba]
Код
Function pt$(r) Dim re As Object, x As Object, s$, i% Set re = CreateObject("vbscript.regexp") Set rm = CreateObject("vbscript.regexp") With re .Global = True .MultiLine = True .Pattern = "(^|\D)(\d{1}(?:[-\\\(\s]{0,2})\d{3}(?:[-\\\)\s]{0,2})\d{3}(?:[-\s]?)\d{2}(?:[-\s]?)\d{2})(?=\D|$)" End With With rm .Global = True .MultiLine = False .Pattern = "[-\\\(\)\s]" End With Set x = re.Execute(r) If x.Count Then For i = 0 To x.Count - 1 s = s & ";" & rm.Replace(x.Item(i).submatches(1), "") Next pt = Mid(s, 2) End If End Function
вот в этой теме есть примеры и для проверок типа (?<=...) или (?<!...), и ещё кое-какие плюшки. но то ли ночь на дворе, то ли лыжи надо менять - не разобрался я, можно ли это дело прикрутить к Excel.
пс. аналогичную тему создал на киберфоруме, но, надеюсь, в данном случае это не повредит никому.
вот в этой теме есть примеры и для проверок типа (?<=...) или (?<!...), и ещё кое-какие плюшки. но то ли ночь на дворе, то ли лыжи надо менять - не разобрался я, можно ли это дело прикрутить к Excel.
пс. аналогичную тему создал на киберфоруме, но, надеюсь, в данном случае это не повредит никому. ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
Вот еще такой вопрос. Сколько совпадений я могу вытащить? То есть я использую конструкцию .Execute() посмотрев в окно переменных я вижу что каутн более 22000 но в результатах толькот 256 значений! это ограничение можно как то обойти! Ну естественно кроме как очевидным вариантом разбив строку на подстроки и перебрав их в цикле
Вот еще такой вопрос. Сколько совпадений я могу вытащить? То есть я использую конструкцию .Execute() посмотрев в окно переменных я вижу что каутн более 22000 но в результатах толькот 256 значений! это ограничение можно как то обойти! Ну естественно кроме как очевидным вариантом разбив строку на подстроки и перебрав их в циклеPoltava
Poltava, это, скорее всего, просто ограничение возможности визуализации в окне Locals. Реально совпадающих подстрок должно быть столько, сколько указано в .Count А кто мешает попробовать? Закиньте их все циклом в массив/коллекцию/словарь (кому что больше нравится) и попробуйте считывать оттуда элементы с номерами больше 255. Наверняка получится.
Poltava, это, скорее всего, просто ограничение возможности визуализации в окне Locals. Реально совпадающих подстрок должно быть столько, сколько указано в .Count А кто мешает попробовать? Закиньте их все циклом в массив/коллекцию/словарь (кому что больше нравится) и попробуйте считывать оттуда элементы с номерами больше 255. Наверняка получится.Alex_ST
есть такое выражение “customfield_11118":null,”customfield_11119":[{"self":"http://w7x01/rest/api/2/customFieldOption/11601","value":"ПАСПОРТ","id":"11601"},{"self":"http://w7x01/rest/api/2/customFieldOption/11602","value":"Бланка","id":"11602"}],”customfield_10710":null - общий объем обрабатываемого текста бывает до 1 мб. все значения обрамлены запятыми, но внутри этих значений встречаются составные значения с фигурными с бывает с квадратными, бывают квадратные с фигурными в перемешку как в примере выше. в дальнейшем все это должно попасть в массив внутри vba в excel ключ - значение так вот задача в регулярном выражении повыдергивать все значения разделенные запятыми, распознать те которые заключены в квадратные и в круглые и распихать их также в массив вопрос в следующем есть ли ограниечение на работу regexp на объем данных и засчет циклов может быть имеет смысл это как то по другому реализовать.? и я так понимаю что двоеточие не является метасимволом и определяется \u00a3 , скобки спойкойно \"
есть такое выражение “customfield_11118":null,”customfield_11119":[{"self":"http://w7x01/rest/api/2/customFieldOption/11601","value":"ПАСПОРТ","id":"11601"},{"self":"http://w7x01/rest/api/2/customFieldOption/11602","value":"Бланка","id":"11602"}],”customfield_10710":null - общий объем обрабатываемого текста бывает до 1 мб. все значения обрамлены запятыми, но внутри этих значений встречаются составные значения с фигурными с бывает с квадратными, бывают квадратные с фигурными в перемешку как в примере выше. в дальнейшем все это должно попасть в массив внутри vba в excel ключ - значение так вот задача в регулярном выражении повыдергивать все значения разделенные запятыми, распознать те которые заключены в квадратные и в круглые и распихать их также в массив вопрос в следующем есть ли ограниечение на работу regexp на объем данных и засчет циклов может быть имеет смысл это как то по другому реализовать.? и я так понимаю что двоеточие не является метасимволом и определяется \u00a3 , скобки спойкойно \"
задача запихнуть все ключ значения просто в массив разобрав весь этот конгломерат cDataSet.xml которые предлагается для разбора кричит что для него это не подъемный материал... следовательно или остается два пути или дать regularexpress command или допилить данный файл. на этой странице там все скрипты внутри файла, http://ramblings.mcpher.com/Home/excelquirks/downlable-items
проверяю значит работоспособнсоть json это мега штука но при условии что она простая до не узнаваемости нарыл следующее
задача запихнуть все ключ значения просто в массив разобрав весь этот конгломерат cDataSet.xml которые предлагается для разбора кричит что для него это не подъемный материал... следовательно или остается два пути или дать regularexpress command или допилить данный файл. на этой странице там все скрипты внутри файла, http://ramblings.mcpher.com/Home/excelquirks/downlable-items
Поябедничять модераторам на предыдущий пост не могу. Могу порекомендовать сказать спасибо спасибо, и попросить пИсать в другом месте, где его пИсание понимают (чтобы место не занимал). А потом удалить пИсание из темы.
Поябедничять модераторам на предыдущий пост не могу. Могу порекомендовать сказать спасибо спасибо, и попросить пИсать в другом месте, где его пИсание понимают (чтобы место не занимал). А потом удалить пИсание из темы.
Можно взять внешнюю библиотеку/скрипт для разбора JSON'а. Не представляю, как это сделать с помощью VBA, т.к. он не умеет ходить (цикл) по объектам (т.е. возвращать их ключи и значения). А вот результат разбора уже можно вернуть в VBA или в эксель на лист.
Цитата (спасибо.)
но заставить работать его с возвратами которые выдает jira не удается т.к. запрос имеет многоэтажную конструкцию. например
не важно, сколько этажей. Главное, чтобы JSON был валиден.
Если очень нужно, пишите в личку или на почту. Помогу за умеренное вознаграждение.
Можно взять внешнюю библиотеку/скрипт для разбора JSON'а. Не представляю, как это сделать с помощью VBA, т.к. он не умеет ходить (цикл) по объектам (т.е. возвращать их ключи и значения). А вот результат разбора уже можно вернуть в VBA или в эксель на лист.
Цитата (спасибо.)
но заставить работать его с возвратами которые выдает jira не удается т.к. запрос имеет многоэтажную конструкцию. например
не важно, сколько этажей. Главное, чтобы JSON был валиден.
Если очень нужно, пишите в личку или на почту. Помогу за умеренное вознаграждение.nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Александр, ну сколько можно оффтопать? Мы все, конечно, очень рады за тебя, что ты изучил js и знаешь, что такое JSON Но топик "Поговорим про RegExp?" - не место для их обсуждения. Хочешь об этом поговорить? Тогда создай соответствующий топик. А здесь все эти разговоры - ОФФТОП.
Александр, ну сколько можно оффтопать? Мы все, конечно, очень рады за тебя, что ты изучил js и знаешь, что такое JSON Но топик "Поговорим про RegExp?" - не место для их обсуждения. Хочешь об этом поговорить? Тогда создай соответствующий топик. А здесь все эти разговоры - ОФФТОП.Alex_ST
если тебе так неприятно мое присутствие, можешь гнать мою карму в ноль или стать модератором и забанить, или пожаловаться администрации, или твой вариант
Цитата (Alex_ST)
А здесь все эти разговоры - ОФФТОП.
я в курсе
Цитата (Alex_ST)
Александр, ну сколько можно оффтопать?
если тебе так неприятно мое присутствие, можешь гнать мою карму в ноль или стать модератором и забанить, или пожаловаться администрации, или твой вариантnerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук