2013-05-28 2 views
0

У меня есть переменная длина строки и хотите, чтобы соответствовать только первые 16 символов, если эта строка закончилась 8.регулярное выражение - спутать - первая часть строки, чтобы соответствовать только

Пример: testertestertestertestertesterte

Мои регулярное выражение:

([a-zA-Z1-9_]{8,16}) 

Однако вместо соответствия:

testertestertest 

Он соответствует всей строке - 1 раз для каждых 16 символов.

Как это можно ограничить только первым совпадением?

+3

Какой вкус регулярных выражений вы используете? – melwil

ответ

2

Вы должны поставить якорь на шаблон RegEx, чтобы указать, матч должен быть в начале строки:

^([a-zA-Z1-9_]{8,16}) 
4

Вы можете привязать поиск к началу строки с ^

^([a-zA-Z1-9_]{8,16}) 

Если вы хотите, чтобы соответствовать, если есть более чем 8 символов в строке, вам нужно будет настроить 8 до 9.

^([a-zA-Z1-9_]{9,16}) 
Смежные вопросы