Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите с регулярным выражением  (Прочитано 671 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dimonx3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
    • dimonx3
Помогите с регулярным выражением
« : 04 Августа 2011, 17:45:38 »
помогите пожалуйста, как мне воткнуть этот кусочек [0-9]+\.?[0-9]* вместо 0-9 в этом выражении [\(]?[a-zA-Z0-9\(\)\+\-\*\/]+[\)]?
то есть не пойму какими и как скобками его окружить или что с ним сделать?
пробовал так
[\(]?[a-zA-Z([0-9]+\.?[0-9]*)\(\)\+\-\*\/]+[\)]?
и так
[\(]?[a-zA-Z[[0-9]+\.?[0-9]*]\(\)\+\-\*\/]+[\)]?
не работает.

вот строка для примера 1+(A+B)*C+1.5;
здесь можно тестировать http://regexlib.com/RETester.aspx

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Помогите с регулярным выражением
« Ответ #1 : 04 Августа 2011, 18:52:35 »
Для какого ЯП должно быть регулярное выражение?

Оффлайн dimonx3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
    • dimonx3
Re: Помогите с регулярным выражением
« Ответ #2 : 04 Августа 2011, 18:56:39 »
javascript, но это не важно

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3129
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: Помогите с регулярным выражением
« Ответ #3 : 04 Августа 2011, 19:16:11 »
Потренируйтесь тут:
http://gskinner.com/RegExr/
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн dimonx3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
    • dimonx3
Re: Помогите с регулярным выражением
« Ответ #4 : 04 Августа 2011, 19:38:33 »
может это выражение можно по другому написать или у кого-то есть такое. мне нужно проверять что бы строка была математическим выражением и все. без всяких там сложных проверок. то есть в строке могут быть буквы, числа (целые, дробные) и символы (.+-*/()).
« Последнее редактирование: 04 Августа 2011, 19:41:17 от dimonx3 »

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Помогите с регулярным выражением
« Ответ #5 : 04 Августа 2011, 20:06:04 »
Если порядок расположения элементов не важен, то сойдет и так:
([1-9A-Z\(\)\.\-\+\*\/]*)+

Оффлайн dimonx3

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
    • dimonx3
Re: Помогите с регулярным выражением
« Ответ #6 : 04 Августа 2011, 20:14:14 »
такое и написал, но оно пропустит такие значение 00.5, A.5, 0.5.5. это же не корректные данные!!!

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Помогите с регулярным выражением
« Ответ #7 : 04 Августа 2011, 20:59:45 »
Тогда так:
(([1-9A-Z\(\)\-\+\*\/])*([1-9]*\.[1-9]*)*)+

andrey_p

  • Гость
Re: Помогите с регулярным выражением
« Ответ #8 : 05 Августа 2011, 09:33:39 »
А такое пропустит '1)+1' и еще кучу, a 'a+1' не пропустит.
Вопрос к ТС - насколько "проста" должна быть проверка, поскольку более-менее вменяемая проверка арифметических выражений средствами регулярных выражений невозможна (разбор нужен).


Axa-Ru

  • Гость
Re: Помогите с регулярным выражением
« Ответ #9 : 05 Августа 2011, 09:52:53 »
помогите пожалуйста, как мне воткнуть этот кусочек [0-9]+\.?[0-9]* вместо 0-9 в этом выражении [\(]?[a-zA-Z0-9\(\)\+\-\*\/]+[\)]?
А начиналось с "воткнуть кусочек"

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Помогите с регулярным выражением
« Ответ #10 : 05 Августа 2011, 10:01:57 »
А такое пропустит '1)+1' и еще кучу, a 'a+1' не пропустит.

Поскольку задача сформулирована более чем в общем виде, то и решения получаются такие же.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.