Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   рега раз плюнуть) (https://javascript.ru/forum/misc/11437-rega-raz-plyunut.html)

Slawaq 23.08.2010 22:27

рега раз плюнуть)
 
пожалуйста сделайте регу на
Код:

'& #91;N& #93;любой текст и символы & #91;& #47;N& #93;'
(пробелы поставил между & и # чтобы символ не ставило)
очень прошу, а то читать книгу 600 страниц чтобы узнать как это делать пока не хочется, для знающих это же легко, очень прошу(хоть понимаю как некоторые посылают в раздел "робота":) )

Gvozd 23.08.2010 22:31

Цитата:

Сообщение от Slawaq
а то читать книгу 600 страниц

для изучения базовых возможностей регулярок достаточно прочитать статью на пару страниц

И да, всех тех кто не прилагает ни капли усилий к решению своей задачи, как правило направляют в раздел работа.
Данный случай подпадает под такое определение

Slawaq 23.08.2010 22:35

та я понял, я в книге шестое издание по по ЯС, там 11 главу прочитал про реги, но ничё не понял, ну только что-то но в ПХП оно не работает, и я то усилие прилагал, но не выходило, я конечно покажу что я побывал, но это наверно сильно убого, но покажу, может скажите что не правильно и я потом сумею уже похоже реги сам делать)
Код:

/\&+\#+91+\;+N+\&+\#+93+\;+\S*+\&+\#+91+\;+\&+\#+47+\;+N+\&+\#+93+\;/

Sweet 23.08.2010 22:35

Мне хватило прочитать вот это. Ну а раз уж решил просить помощь, можно понятнее?:) А то я лично не понял, что нужно

Slawaq 23.08.2010 22:45

ну нужно разбить строку, регой типа [N]TEXT[/N] просто я символы [,],/ заменил на их коды в HTML

Sweet 23.08.2010 23:01

Цитата:

Сообщение от Slawaq
просто я символы [,],/ заменил на их коды в HTML

Это я сразу понял. Что такое "рега типа [N]TEXT[/N]"???

Slawaq 23.08.2010 23:59

ну есть строка
$msg='deblsaghfalaр[N]bla-bla[/N]dfgdf[N]any text[/N]sdfds'

и мне надо делить эту строку на массив, с помощью preg_split
$patten = '/\&+\#+91+\;+N+\&+\#+93+\;+\S*+\&+\#+91+\;+\&+\#+47+\;+N+\&+\#+93+\;/';
$msg = preg_split($patten,$msg);
print_r($msg);
и чтобы потом выводило:
Код:

Array ([0] => deblsaghfalaр [1] => dfgdf [2] => sdfds)
но оно ничего не выводит так как мой паттен неправильный((
может кто скажет как надо правильный делать?)

через время ещё раз подумал и понял, что всё-же проблема в плюсах))
и поменял
/\&\#91\;N\&\#93\;\S*\&\#91\;\&\#47\;N\&\#93\;/
и оно работает) короче как всегда форум выполняет свое предназначение и свою ошибку я нашел сам)

Sweet 24.08.2010 00:48

var str = 'deblsaghfalaр[N]bla-bla[/N]dfgdf[N]any text[/N]sdfds', 
arr = str.split(/\[N\][^\[]*\[\/N\]/)
alert(arr)

Slawaq 24.08.2010 01:18

спс) только не могу плюсануть, так как последний раз тебе и плюсовал))
от ещё вопрос не смог найти, как обозначить любой символ, то есть строку с любыми символами, и с разделителями?

Sweet 24.08.2010 12:05

Цитата:

Сообщение от Slawaq
не смог найти

Видимо, потому что не искал. Хотя и искать не надо было. Я уже кидал ссылку, где есть очень полезная таблица - там все есть. Цитата из нее:
Цитата:

[\s\S] для поиска любого символа, включая переводы строк

Slawaq 24.08.2010 16:12

ещё один вопрос, может ли indexOf искать подстроку по регулярке? я побывал и кажется нет, но на всякий случай спросил, и если нет то как по-другому найти номер символа с которого начинается подстрока?

Octane 24.08.2010 16:17

search может

Slawaq 24.08.2010 16:19

о, блин как-то я криво смотрел справочник, спасибо)

Slawaq 26.08.2010 02:08

срочно, просто уже головой бьюсь, сделал прогресс в изучении рег, но всё таки не знаю как обозначить любой символ от 0 до бесконечности включая???

и /.*/ тоже кажется не работает..
от полная рега с точкой:
/\[size\=(.*)\]/
код вообще не находит...

Slawaq 26.08.2010 03:01

всё, та проблема решена, я нашел нужную статью на форуме, НО, можно ли создавать массив из RegExp? а то я как всегда побывал, но ничего не получилось, или хотя-бы создавать реги из строк?

Gvozd 26.08.2010 03:15

Цитата:

Сообщение от Slawaq
НО, можно ли создавать массив из RegExp?

массив?
почему нет.
но, что вы хотите добится этим?
Цитата:

Сообщение от Slawaq
или хотя-бы создавать реги из строк?

как два байта отослать
рега-это объект.
и его вполне можно создать, используя стандартную функцию-конструктор

Slawaq 26.08.2010 03:24

мне надо массив чтобы ббкоды реплейсить, я и хотел создать массив де будут реги ,тех ббкодов, которые надо реплейсить.
я пытался создать из строки через конструктор от
Код:

bbcds = new RegExp('/\[('+bbc[0]+')\](.*?)\[\/'+bbc[0]+'\]/');
но оно не работает, когда я решил задействовать eval() так вообще неправильно реплейсило.
Дайте пример как строку преобразовать в регу, а то что-то я не правильно делаю

Gvozd 26.08.2010 04:14

Цитата:

Сообщение от Slawaq
Дайте пример как строку преобразовать в регу, а то что-то я не правильно делаю

http://javascript.ru/RegExp


Часовой пояс GMT +3, время: 00:08.