Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.10.2008, 15:56
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

почему (?= работает - вот в чём вопрос
Ответить с цитированием
  #22 (permalink)  
Старый 08.10.2008, 16:03
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

(?= работает только в конце...
Ответить с цитированием
  #23 (permalink)  
Старый 08.10.2008, 23:18
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Сообщение от baal1988
Хочется чтобы результатом было - 13 Hi all people * _ +,HI AKK,HI HOUSE
var s = '1) Number of tube((13 Hi all people * _ +)) Number of tube((HI AKK))',
    r = /Number of tube\(\((.*?)\)\)/g,
    a = [];
while (r.exec(s)) {
    a[a.length] = RegExp.$1;
}
alert(a);
Ответить с цитированием
  #24 (permalink)  
Старый 09.10.2008, 07:35
jsch
 
Сообщений: n/a

ответ
var word = "Number of tube";
var number_of_skobka = 2;
var str = "1) Number of tube((13 Hi all people * _ +)) Number of tube((HI AKK)) Number of Kills ((Privet)) Number of tube((HI HOUSE))";
var reg1 = new RegExp(word+"\\({"+number_of_skobka+"}[^\\)\\(]+(?=\\){"+number_of_skobka+"})","g");
var reg2 = new RegExp(word+"\\({"+number_of_skobka+"}");
alert(reg1.toString());
alert(reg2.toString());
var arr = str.match(reg1).join("").split(reg2);
alert(arr);

тока вот arr[0] будет всегда пустой

и еще может кто подскажет почему в js в регулярных выражениях просмотр назад не работает?
так бы можно было бы обойтись одной строкой
str.match(/(?<=Number of tube\({2})[^\(\)]+(?=\){2})/g)
Ответить с цитированием
  #25 (permalink)  
Старый 09.10.2008, 08:06
jsch
 
Сообщений: n/a

ответ
только что заметил: в IE у переменной arr нет первого пустого элемента
Ответить с цитированием
  #26 (permalink)  
Старый 09.10.2008, 09:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от jsch
и еще может кто подскажет почему в js в регулярных выражениях просмотр назад не работает?
Если имеются в виду обратные ссылки, то они обозначаются $N.

Сообщение от jsch
только что заметил: в IE у переменной arr нет первого пустого элемента
Есть такая бага, если нужно все выражение приходится брать его в скобки.
Ответить с цитированием
  #27 (permalink)  
Старый 09.10.2008, 10:11
jsch
 
Сообщений: n/a

ответ
Сообщение от Kolyaj Посмотреть сообщение
Если имеются в виду обратные ссылки, то они обозначаются $N.
нее. выражение типа (?<=шаблон)
Ответить с цитированием
  #28 (permalink)  
Старый 09.10.2008, 10:51
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от jsch
нее. выражение типа (?<=шаблон)
Ну эти много где не поддерживаются, а если поддерживаются, то только фиксированной длины. Если учитывать упомянутую багу ИЕ с нулевым элементом, то они особо и не нужны.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения задача посложнее faunder Общие вопросы Javascript 5 15.09.2008 14:17
Регулярные выражения faunder Общие вопросы Javascript 2 15.09.2008 09:49
регулярные выражения в JS bifidokk Events/DOM/Window 2 02.06.2008 12:29