Запрет начинающего/завершающего символа в строке через 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!
Re: Запрет начинающего/завершающего символа в строке через R
От: adontz Грузия http://adontz.wordpress.com/
Дата: 16.03.11 10:29
Оценка: 15 (2)
Здравствуйте, Grammer, Вы писали:

^([bc][a-c]*[bc]|[bc])$
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.