2016-11-20 5 views
-1

Как совместить строку с «буквенно-цифровыми символами, подчеркиванием и любым количеством открытых и закрытых квадратных скобок». Пример:
" CDN_MBIT_hresp_s_reg[0]_MB_hresp_s_reg[1]bbjabs_chiansmokrs[6] "Perl сопоставляющая строка с сочетанием буквенно-цифровых символов _ и любого количества квадратных фигур

Я попытался $line=~/[a-zA-Z0-9_/[/]]/;
Это, кажется, не работает.

P.S. Этот вопрос очень похож на Regex Matching Square Brackets , но не тот же Спасибо заранее.

+4

Неверный символ эвакуации. Это не '/', а '\'. Попробуйте '$ line = ~/[a-zA-Z0-9 _ \ [\]] /;' – PerlDuck

ответ

3

Неверная косая черта, используемая для побега.

/[a-zA-Z0-9_\[\]]/ 

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

/[\w\[\]]/ 

Оба этих матча точно один характер. Если вы хотите захватить строку, вы хотите, чтобы

/([\w\[\]]+)/