[решено] Регулярные выражения в AutoIt

Ответить
 • Просмотры: 1
Аватара пользователя
morgan1991

Re: [решено] Регулярные выражения в AutoIt

Сообщение morgan1991 »

Код:

Код: Выделить всё

{"n":4,"d":[[73355227,1274794749,["Необходимо получить двумерный массив:"],[53261465,"jhgf jjj","http://cs386.userapi.com/u53261465/y_hjjg.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354434,1274792979,["morgan1991, дайте рабочий пример в несколько строчек"],[53261465,"test morgan","http://cs386.userapi.com/u53261465/84_jtfd921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354284,1274792596,["Спасибочки)))))"],[40839431,"Viktoria Test","http://cs580.userapi.com/u40839431/k_gif5913.jpg","c_89cf5a1x:002",1,0],[1411059575]],[73340415,1274730302,["привет,как у тебя дела????"],[53261465,"Alenka Press","http://cs386.userapi.com/u53261465/u_f45f921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],"h":883000002}
Аватара пользователя
morgan1991

Re: [решено] Регулярные выражения в AutoIt

Сообщение morgan1991 »

Помогите пожалуйста ещё с таким выражением:



Код:

Код: Выделить всё

[цифры меняющиеся1,цифры меняющиеся2,["Меняющийся текст1"],[цифры меняющиеся3,"Меняющийся текст2","ссылка на файл","

Необходимо получить двумерный массив:



Код:

Код: Выделить всё

$arr[0][0] = цифры меняющиеся1
$arr[0][1] = цифры меняющиеся2
$arr[0][2] = Меняющийся текст1
$arr[0][3] = цифры меняющиеся3
$arr[0][4] = Меняющийся текст2
$arr[0][5] = ссылка на файл
$arr[1][0] = цифры меняющиеся1
$arr[1][1] = цифры меняющиеся2
$arr[1][2] = Меняющийся текст1
$arr[1][3] = цифры меняющиеся3
$arr[1][4] = Меняющийся текст2
$arr[1][5] = ссылка на файл
И так далее...

У меня получилось так:



Код:

Код: Выделить всё

StringRegExp($text, '\[\(d*)\,\(d*)\,\[\"(.*)\"\]\,\[(\d*)\,\"(.*)\"\,\"(.*)\"\,\"', 3)

Но не работает... Изображение
Аватара пользователя
amel27

Re: [решено] Регулярные выражения в AutoIt

Сообщение amel27 »

amel27, работает отлично, но выводит не всё... Я думаю скорее всего из-за того, что в


Цитата morgan1991:



Меняющийся текст1
[решено] Регулярные выражения в AutoIt




иногда встречаются разные символы, например:

{[}]+=&*(^%)_|\/ и т.д.

Возможно выражение их игнорирует... А в частности заметил, если в тексте есть текст[текст]текст, то он игнорирует эту часть...
Аватара пользователя
amel27

Re: [решено] Регулярные выражения в AutoIt

Сообщение amel27 »

Цитата morgan1991:



иногда встречаются разные символы
[решено] Регулярные выражения в AutoIt




как обычно - давайте нерабочие примеры, менее жесткий вариант:



Код:

Код: Выделить всё

'\[(\d++),(\d++),\["([^"]*+)"\],\[(\d++),"([^"]*+)","([^"]*+)",'
Аватара пользователя
morgan1991

Re: [решено] Регулярные выражения в AutoIt

Сообщение morgan1991 »

Код:

Код: Выделить всё

{"n":4,"d":[[73355227,1274794749,["Необходимо [app]получить двумерный массив:"],[53261465,"jhgf jjj","http://cs386.userapi.com/u53261465/y_hjjg.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354434,1274792979,["morgan1991, дайте рабочий пример в не[app]сколько строчек"],[53261465,"test morgan","http://cs386.userapi.com/u53261465/84_jtfd921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354284,1274792596,["Спасибочки)))))"],[40839431,"Viktoria Test","http://cs580.userapi.com/u40839431/k_gif5913.jpg","c_89cf5a1x:002",1,0],[1411059575]],[73340415,1274730302,["привет,как у[app] тебя дела????"],[53261465,"Alenka Press","http://cs386.userapi.com/u53261465/u_f45f921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],"h":883000002}
Аватара пользователя
amel27

Re: [решено] Регулярные выражения в AutoIt

Сообщение amel27 »

morgan1991, у меня последнее выражение нормально отрабатывает... конечно, можно для надежности добить весь блок до закрывающей скобки, но думаю это лишнее:



Код:

Код: Выделить всё

'\[(\d++),(\d++),\["([^"]*+)"\],\[(\d++),"([^"]*+)","([^"]*+)","[^"]*+",\d++,\d++\],\[\d+\]\]'
Аватара пользователя
morgan1991

Re: [решено] Регулярные выражения в AutoIt

Сообщение morgan1991 »

Код:

Код: Выделить всё

{"n":4,"d":[[73355227,1274794749,["Необходимо [app]получить двумерный массив:"],[53261465,"jhgf jjj","http://cs386.userapi.com/u53261465/y_hjjg.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354434,1274792979,["morgan1991, дайте рабочий пример в не[app]сколько строчек"],[53261465,"test morgan","http://cs386.userapi.com/u53261465/84_jtfd921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],[73354284,1274792596,["Спасибочки)))))"],[40839431,"Viktoria Test","http://cs580.userapi.com/u40839431/k_gif5913.jpg","c_89cf5a1x:002",1,0],[1411059575]],[73340415,1274730302,["привет,как у[app] тебя дела????"],[53261465,"Alenka Press","http://cs386.userapi.com/u53261465/u_f45f921c.jpg","c_0ef1b41x:001",1,0],[1411059575]],"h":883000002}
Аватара пользователя
amel27

Re: [решено] Регулярные выражения в AutoIt

Сообщение amel27 »

Цитата morgan1991:



вот ещё иногда бывают такие случаи
[решено] Регулярные выражения в AutoIt




тут два блока разного формата, вот разбор:



Код:

Код: Выделить всё

$sText = '['& _
            '73388045,'& _
            '1274894102,'& _
            '['& _
               '"<a href=''http://cs945.userapi.com/u11909801/l_c9f2e05b.png''><img src=''http://cs945.userapi.com/u11909801/m_ce4c5ebc.png''/></a>",'& _
               '2,'& _
               '"",'& _
               '"http://cs945.userapi.com/u11909801/m_ce4c5ebc.png",'& _
               '"http://cs945.userapi.com/u11909801/l_c9f2e05b.png",'& _
               '11909801,'& _
               '222769342'& _
            '],'& _
            '['& _
               '11909801,'& _
               '"Yevgeny Vladimirovich",'& _
               '"http://cs228.userapi.com/u11909801/b_06451668.jpg",'& _
               '"c_2234ac1x:001",'& _
               '2,'& _
               '0'& _
            '],'& _
            '['& _
               '1411059575'& _
            ']'& _
         '],'& _
         '['& _
            '73377400,'& _
            '1274871984,'& _
            '['& _
               '"[[app_post1830401|a_11909801_4718705_162769015|b0c02new1090000]]"'& _
            '],'& _
            '['& _
               '11909801,'& _
               '"Yevgeny Vladimirovich",'& _
               '"http://cs228.userapi.com/u11909801/b_06451668.jpg",'& _
               '"c_2234ac1x:001",'& _
               '2,'& _
               '0'& _
            '],'& _
            '['& _
               '1411059575'& _
            ']'& _
         ']'


Цитата morgan1991:



нужно чтоб приходил, не только текст, должна вернутся строчка
[решено] Регулярные выражения в AutoIt




в смысле?.. каким элементом массива?.. переформулируйте исходную задачу
Аватара пользователя
morgan1991

Re: [решено] Регулярные выражения в AutoIt

Сообщение morgan1991 »

Цитата amel27:



в смысле?.. каким элементом массива?.. переформулируйте исходную задачу
[решено] Регулярные выражения в AutoIt




Я имел ввиду что не нужно разбивать на части эту часть:



Код:

Код: Выделить всё

"<a href='http://cs945.userapi.com/u11909801/l_c9f2e05b.png'><img src='http://cs945.userapi.com/u11909801/m_ce4c5ebc.png'/></a>",2,"","http://cs945.userapi.com/u11909801/m_ce4c5ebc.png","http://cs945.userapi.com/u11909801/l_c9f2e05b.png",11909801,222769342

Т.е.


Цитата morgan1991:



["Меняющийся текст1"]
[решено] Регулярные выражения в AutoIt




Нужно оставить как есть и запихать в элемент массива.
Аватара пользователя
amel27

Re: [решено] Регулярные выражения в AutoIt

Сообщение amel27 »

Цитата morgan1991:



Нужно оставить как есть и запихать в элемент массива.
[решено] Регулярные выражения в AutoIt




а как быть с кавычками?.. ведь тогда из второго блока получится:



Код:

Код: Выделить всё

["[[app_post1830401|a_11909801_4718705_162769015|b0c02new1090000]]"]

или нужно проверять количество элементов в блоке и в зависимости от этого выщелкивать текст/блок?
Ответить

Вернуться в «AutoIt»