2012-05-19 6 views
1

На данный момент у меня есть:Требуемое значение в регулярное выражение

^[a-zA-Z0-9_\x7f-\xff]*/[a-zA-Z0-9_\x7f-\xff]*$ 

Я хочу blah/blah, чтобы соответствовать, но я не хочу c/blah или /blah или blah/ или blah/c, чтобы соответствовать (Поэтому я хочу, чтобы иметь по крайней мере, два значения по обе стороны от строки.

Просто заметьте, ^ и $ являются потому, что вся строка сильно совпадают с регулярным выражением, а не только его часть.

+3

Значит, это должно быть одинаковое значение с обеих сторон? Или, по крайней мере, два персонажа? –

+0

К сожалению, я не делал этого ясно. До тех пор, пока у него есть два + символа с каждой стороны /, то это штраф. Это не должно быть одинаковое значение. – UKB

ответ

3

Измените выражение следующим образом:

^[a-zA-Z0-9_\x7f-\xff]{2,}/[a-zA-Z0-9_\x7f-\xff]{2,}$ 

Использование {2,} вместо * обеспечивает по крайней мере два матча предварительного регулярное выражение должно быть сделано.

+0

+1 В Perl я обнаружил, что мне нужно было избежать косой черты посередине:^[a-zA-Z0-9_ \ x7f- \ xff] {2,} '\ /' [a-zA-Z0-9_ \ x7f- \ xff] {2,} $ –

+0

Его использование в PHP, но спасибо. – UKB

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