Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите составить регулярное выражение (https://javascript.ru/forum/misc/14205-pomogite-sostavit-regulyarnoe-vyrazhenie.html)

Aetae 10.01.2011 17:57

Неправильно пониаешь. RTFM
. - любой символ.
+ - повторить 1 и более раз.
? после множителя - обозначение "не жадности", те /a.+d/ съест в 'abcdabcd' всё, а /a.+?d/ только 'abcdabcd'.

ksa 10.01.2011 20:57

Aetae, еще раз спасибо! :)

MCTrane 10.01.2011 21:28

Получается это невозможно сделать для моего случая?

Aetae 10.01.2011 21:32

Возможно все, а это - раз плюнуть.
Но никто не сделает это за вас, учитесь.

MCTrane 10.01.2011 23:25

Цитата:

Сообщение от Aetae (Сообщение 87240)
а /a.+?d/ только 'abcdabcd'.

Использую .+?, удаляет всё, что с ?, что без...
от самого первого JOOM, до нужного элемента...

monolithed 10.01.2011 23:33

Цитата:

Сообщение от MCTrane
Не знаю.

это была шутка
Цитата:

Сообщение от MCTrane
Блин, обьясните пожалуйста почему рег. выражение beg2+'+?.'+end2 не работает

и не будет, потому что это в меньшей степени похоже на регулярное выражение.


alert('JOOMtest3*test4JOOMtest5*test6JOOM'.replace(/JOOMtest3(.*)test6JOOM/, '$1'));

MCTrane 10.01.2011 23:40

monolithed,
"это была шутка"
Я даже не понимаю о какой спецификации ты?
А что ты за код привёл?

x-yuri 11.01.2011 01:24

Цитата:

Сообщение от MCTrane
Я просто пытаюсь разобраться в регулярных выражениях в js

так бы и написал с самого начала

Цитата:

Сообщение от MCTrane
Использую .+?, удаляет всё, что с ?, что без...

var s = 'abcdabcd';
alert([
    s.replace(/a.+d/, 'x'),
    s.replace(/a.+?d/, 'x')
]);

ksa 11.01.2011 09:22

monolithed, жаль что не даёт тебе плюсануть... :( Но спасибо за пример т.с. "на словах" :)

Про "жадность" вроде как тоже понял... :D

MCTrane 11.01.2011 13:25

Что не хватает в этом рег. выражении, всё уже перепробовал что в голове нашёл, то удаляет всё до сейчас он удаляет всё до "test3JOOM", то вообще всё удаляет, то ничего не удаляет, вот выбрал один из рег. выражений в котором удаляется всё до "test3JOOM", не как не пойму что добавить к нему(
var text = "test3";
var beg = "JOOM";
var end = text+"JOOM";
var end2 = "JOOM";
var str = "JOOMtest1*test2JOOMtest4*test3JOOMtest5*test6JOOM";
var test=new RegExp(beg+'.+?.+?'+end, "g");

	alert(str.replace(test,end2))


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