Запрет начинающего/завершающего символа в строке через Regex
От: Grammer  
Дата: 16.03.11 10:24
Оценка:
Например есть строка состоящая из символов 'a', 'b' и 'c'
Можно их использовать в любом порядке с запретом символа 'a' в начале и в конце строки.

За основу я взял след regex:
@"^[a-c]*$";


1. Я добавил по бокам [^a]:
@"^[^a][a-c]*[^a]$";


И все бы и хорошо, так как в результате я запретил 'a' по бокам строки, однако таким образом разрешил все остальные символы.

2. Было так же использовано альтернативное решение вместо запрещения по бокам 'a' я разрешил 'b' и 'c':
@"^[bc][a-c]*[bc]$";


Оно работает уже лучше, однако появился маааааленький баг — у меня обязательно должно быть два символа в моей строке. Однако один символ 'b' или 'c' в моем случае должна быть валидная ситуация.

3. Я попробывал указать что в конце может и не быть в принципе разрешенного символа:
@"^[bc][a-c]*[bc]*$";



Но таким образом пришел к тому с чего начинал — в конце опять можно ставить запрещенный для конца строки символ 'a'.

---
Такую эволюцию я провел с regex которая завела меня в тупик . Как быть
TIA!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.