Хотите любой алфавитно-цифровой и подчеркивание, тире и точку, чтобы пройти - PullRequest
0 голосов
/ 21 декабря 2009

В моем контроллере я сейчас установил ограничение, которое имеет следующее регулярное выражение:

 @"\w+"

Я хочу также включить подчеркивание, тире и точку.

Чем эффективнее, тем лучше, так как это называется allot.

какие-нибудь советы?

Ответы [ 6 ]

2 голосов
/ 21 декабря 2009

попробуйте это:

@"[._-\w]+"
1 голос
/ 21 декабря 2009

(?:\w|[-_.])+

Будет соответствовать одному или нескольким символам слова или дефису, подчеркиванию или точке. Они объединены в группу без захвата.

0 голосов
/ 21 декабря 2009

Шаблон для включения всех: [_.-\w]+

Вы можете суффиксить _ \. и - с ?, чтобы сделать любой из символов необязательным (ни одного или больше), например. для подчеркивания:

[_?\.-\w]+

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

0 голосов
/ 21 декабря 2009

Я бы использовал @"[\w\-._]+" в качестве регулярного выражения, поскольку тире можно интерпретировать как разделитель диапазона. С \ w это не опасно, но если позже вы добавите, скажем, @, то безопаснее уже сбежать от тире.

Есть несколько предложений, на которых уже есть _-., и я считаю, что они будут интерпретироваться как "символ слова" или что-то от "_" до "" в диапазоне.

0 голосов
/ 21 декабря 2009

@ "[\ ш _-.] +"

я не гуру регулярных выражений, это всего лишь предположение, поэтому убедитесь, что оно работает ...

0 голосов
/ 21 декабря 2009

Помогает ли следующее? @ "[\ Ш _-.] +"

P.S. Я использую конструктор регулярных выражений Rad Software для разработки сложных регулярных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...