Регулярное выражение для соответствия любому слову, которое не начинается с заглавной буквы

Мне нужно регулярное выражение, чтобы соответствовать описанию в заголовке.

Просто для фона мне нужно иметь возможность обрабатывать текст в текстовом процессоре с поддержкой регулярных выражений (блокнот ++, писатель libreoffice), чтобы все слова, начинающиеся в нижнем регистре, исчезали (заменялись ничем). Остальные слова будут обработаны дальше, чтобы стать тегами для текста.

Большое спасибо

ОБНОВЛЕНИЕ: если возможно, это должно работать с символами Юникода, а не только с ASCII. Есть только несколько символов, которые необходимо учитывать, в основном î,ș

Обновление 2 \W\l(\w*) заменит любое слово, начинающееся с нижнего регистра [[:punct:]] очистит оставшуюся дополнительную пунктуацию

Это работает в блокноте++


person Andrei Tiut    schedule 19.11.2012    source источник
comment
Ну, это заменит всех персонажей. Однако [a-z]\w*\s даст хорошие результаты. Большое спасибо. Тем не менее, это работает с ASCII, а не с юникодом. Я отредактирую вопрос, так что, возможно, кто-то может что-то предложить.   -  person Andrei Tiut    schedule 20.11.2012


Ответы (2)


Вы не указали, какой тип регулярных выражений вы используете, но, если предположить, что он наиболее распространен, это должно сделать это:

/b[a-z]+
person Carey Gregory    schedule 19.11.2012
comment
Не знаю, сколько вкусов. Я использую любой вкус, который используют блокнот ++ и писатель LibreOffice (и я знаю, что они несколько отличаются). В любом случае, ваш wxpresion не работал ни в одном из программ. - person Andrei Tiut; 20.11.2012
comment
Тогда они не используют регулярное выражение UNIX, которое, я бы сказал, наиболее близко к существующему стандарту. - person Carey Gregory; 20.11.2012

Этот код заменит все слова ничем, если они начинаются с маленькой буквы:

string resultString = null;
try {
    resultString = Regex.Replace(subjectString, @"^([a-z]{1})(\w*)", "", RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
person Houshang.Karami    schedule 19.11.2012
comment
Спасибо, но я не совсем программист. Я попытался использовать поиск и замену в Notepad++, и ^([a-z]{1})(\w*) соответствует всем словам, которые одновременно начинаются с заглавной буквы и находятся в начале строки. Теперь я мог бы разместить все слова в отдельных строках (более или менее). Но выражение все еще находит противоположность тому, что я хочу найти - person Andrei Tiut; 20.11.2012
comment
исправление: соответствует всем словам в начале строки. Это был перенос слов, который заставил меня поверить в обратное :) - person Andrei Tiut; 20.11.2012