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

alexandr2006 14.10.2015 17:48

Регулярное выражение
 
Естьстрока типа
{Potential} ({50%})


Нужно вытащить то, что находится между {}

Делаю: "{Potential} ({50%})".match( /\{(.*?)\}/g ) - почему-то выводит вместе с {}

Как правильно написать регулярку?

Decode 14.10.2015 18:25

var str = '{Potential} ({50%})',
     regexp = /\{(.*?)\}/g,
     result;

while ( result = regexp.exec(str) ) {
    alert( result[1] );
}

ksa 15.10.2015 10:21

Цитата:

Сообщение от alexandr2006 (Сообщение 391959)
Естьстрока типа
{Potential} ({50%})

Нужно вытащить то, что находится между {}

Мои 5коп... :D

alert("{Potential} ({50%})".match( /[^{}\s()]+/g ));

alexandr2006 15.10.2015 17:31

Цитата:

Сообщение от ksa (Сообщение 392024)
Мои 5коп... :D

alert("{Potential} ({50%})".match( /[^{}\s()]+/g ));

alert("{Pot ential} ({50%})".match( /[^{}\s()]+/g ));
так не сработает, увы(

ksa 16.10.2015 09:11

Цитата:

Сообщение от alexandr2006
так не сработает

Так умиляет, когда условие задачки меняется раз от разу... :D
Я был готов к этому... Модернизация! :)
alert("{Pot ential} ({50%})".match( /[^{]+(?=\})/g ));

alexandr2006 16.10.2015 11:26

Цитата:

Сообщение от ksa (Сообщение 392174)
Так умиляет, когда условие задачки меняется раз от разу... :D
Я был готов к этому... Модернизация! :)
alert("{Pot ential} ({50%})".match( /[^{]+(?=\})/g ));

Спасибо, ksa, только почти не работает(((

alert("{Pot ential} ({})".match( /[^{]+(?=\})/g )[1]);


А условие задачки таково: есть некий текст и из него нужно вытащить все, что находится между {}, причем {} может быть несколько и внутри них пусто. Пока ставлю вместо {} {false} и пробую осмыслить твой рег выр

alexandr2006 16.10.2015 11:35

Эврика! /[^{]*(?=\})/g

рони 16.10.2015 11:42

Цитата:

Сообщение от alexandr2006
Эврика! /[^{]*(?=\})/g

только
alert("{Pot ential} ({})".match( /[^{]*(?=\})/g).length);

ksa 16.10.2015 11:55

Цитата:

Сообщение от alexandr2006
А условие задачки таково: есть некий текст и из него нужно вытащить все, что находится между {}, причем {} может быть несколько и внутри них пусто.

При увеличении требований в задаче - переходи на вариант Decode. :D


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