2015-02-10 2 views
0

Мне нужно создать регулярное выражение, которое только позволяет использовать следующие символы: 0 - 9, +, -, *, / и ., но оно не должно быть необходимым, чтобы соответствовать их всем может быть, что он соответствует только двум или трем из них. В то время у меня есть этот ^[0-9./+*-], но он не работает, и у меня нет идеи, почему.Создать регулярное выражение, которое только позволяет специфические символы

Кто-нибудь знает, как я могу это исправить?

+1

Что вы подразумеваете под «не [...], необходимым, чтобы соответствовать всем им»? Не могли бы вы показать нам некоторые образцы данных, предпочтительно как положительные, так и отрицательные случаи? Кроме того, какой язык/механизм регулярных выражений вы используете? – Biffen

ответ

2

Вам нужно экранировать специальные символы, такие как /, и добавить * за то, что одно из следующих действий, чтобы быть больше, чем один раз:

[0-9.\/+*-]* 

Смотрите рабочий пример: https://www.regex101.com/r/yL5iH4/1

+1

Большое спасибо за вашу быструю и грамотную помощь. –

+0

Мое удовольствие! ... –

1

Ваши регулярные выражения внешность хорошо, но принимает только одну букву (в начале строки из-за ^).

Если вы хотите, чтобы ноль или более из этих символов, попробуйте ввести * до конца, так как:

^[0-9./+*-]* 

... один или несколько символов:

^[0-9./+*-]+ 

. .. ровно 7 символов:

^[0-9./+*-]{7} 

Надеюсь, это поможет.

+0

Черта не нуждается в экранировании, если это последний символ в классе. – Biffen

+0

Эй, ты прав. Тогда я полагаю, что исходная проблема должна заключаться в том, что это регулярное выражение допускает только один символ? –

+0

Большое спасибо –

Смежные вопросы