Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2011, 03:30
Аспирант
Отправить личное сообщение для [MI_nor] Посмотреть профиль Найти все сообщения от [MI_nor]
 
Регистрация: 24.05.2010
Сообщений: 31

Как в регулярном выражении обозначается "может быть а может и не быть" ?
Пример: составил регулярку /(var|Integer|Number|Object|Boolean)?\s*\w+\s*(=\s* "?.*"?\s*)?;/
Она должна искать все переменные, объявленные в javascript коде. Но в итоге получается так что какие то куски она находит несколько раз. К примеру в коде:

Integer i;
d = 0;
var a = d;

Оно находит:

Всего совпадений 3

1 : Integer i;
1.1 : Integer
2 : var a = d;
2.1 : var
2.2 : = d
3 : d = 0;
3.1 :
3.2 : = 0

Какие то подсовпадения >_<
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2011, 07:49
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

почитайте http://javascript.ru/String/match
видимо надо использовать /.../g
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2011, 09:02
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от [MI_nor] Посмотреть сообщение
Она должна искать все переменные, объявленные в javascript коде.
Сообщение от [MI_nor] Посмотреть сообщение
Integer i;
d = 0;
var a = d;
javascript ?
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2011, 15:07
Новичок на форуме
Отправить личное сообщение для Fynivx Посмотреть профиль Найти все сообщения от Fynivx
 
Регистрация: 09.06.2011
Сообщений: 1

"Какие то подсовпадения" - то, что в круглых скобках. А обозначили Вы правильно - ? - может быть, а может и не быть; * - может и не быть, а может быть и не один; + должен быть, но может и несколько раз; \w - не совсем правильно - переменная не может начинаться с цифры, а значит нужно \D+\w*. Ну, или что-то в этом роде.

А еще могут быть варианты типа
var a, b, c = 3, d = b;
Тогда это выражение работать не будет.
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2011, 21:09
Аспирант
Отправить личное сообщение для nule Посмотреть профиль Найти все сообщения от nule
 
Регистрация: 03.11.2011
Сообщений: 42

А как результат выводите?
Попробуйте "не запоминающие" скобки /(?:var|Integer|Number|Object|Boolean)?\s*\w+\s*(?: =\s* "?.*"?\s*)?;/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57
Как в регулярном выражении использовать переменную? avaVusal Общие вопросы Javascript 7 23.08.2011 15:07