Я работаю над фильтром для списка слов.Проверьте, содержит ли строка верхнюю букву «внутри»
Так вот несколько примеров слов, которые внутри словника:
var words = new List<string>();
var finalList = new List<string>();
words.Add("McLaren");//false
words.Add("Nissan");//true
words.Add("BMW");//false
words.Add("Subaru");//true
words.Add("Maserati");//true
words.Add("Mercedes Benz");//false
words.Add("Volkswagen");//true
words.Add("audi");//true
words.Add("Alfa Romeo");//false
words.Add("rollsRoyce");//false
words.Add("drive");//true
Для решения этой задачи мне нужно регулярное выражение, которое только не принимает письма (без специальных символов, не пробельные). Слова должны содержать не менее 4 символов без ограничений. И он должен принимать только заглавные буквы в начале строки. И здесь моя проблема.
Вот мой код:
var WordRegex = new Regex("^[a-zA-Z]{4,}$", RegexOptions.Compiled | RegexOptions.CultureInvariant);
var secondRegex = new Regex("([A-Z]{1})");
foreach (var word in words)
{
if (WordRegex.IsMatch(word) && secondRegex.Matches(word).Count == 1)
{
finalList.Add(word);
}
}
У меня есть проблема в том, что слово «LOWERCASE» переходит в finallist, которые я не хочу. Я только хочу, чтобы он входил в finalList, если верхняя буква находится в начале строки.
Мое второе регулярное выражение предотвращает такие слова, как «McLaren», потому что у него есть две прописные буквы.
снова:
- McLaren < --- не должны принимать (две прописные буквы)
- Макларен < --- не должны принимать (заглавную букву "внутри" * строка)
- Mclaren < --- следует принимать (заглавные буквы в начале)
- Макларен < --- также не должны принимать (не прописные буквы)
* Что я имею в виду с внутри, если есть какие-либо прописные буквы не в начале или в конце.
previous version of my question дал только C# решения, и теперь я хочу иметь регулярное выражение с той же целью, чтобы учиться на нем.
Вы можете использовать '^ [A-Z]', чтобы найти верхний регистр в начале строки. Или даже '@"^\ p {Lu} "' –
Какая проблема с '^ [A-Za-z] [a-z] {3,} $'? – xanatos
Почему вы отправляете этот вопрос дважды? Если предоставленные вами решения не помогли вам разобраться, почему они не сделали этого, а не снова отправили тот же вопрос. – HimBromBeere