Регулярное выражение для заглавных букв
Я использую текстовый редактор, чтобы заглавные буквы статей в файле ссылок.
У меня похожая структура
...
Title = {Direct synthesis of antimicrobial coatings based on tailored bi-elemental nanoparticles},
journal={APL Mat.},
...
и я хочу использовать только заглавные слова в разделе заголовка, чтобы он стал
...
Title = {Direct Synthesis of Antimicrobial Coatings Based on Tailored Bi-Elemental Nanoparticles},
journal={APL Mat.},
...
Я попытался использовать регулярное выражение lookbehing для поиска каждого слова с последующим словом "Заголовок" следующим образом
(?<=Title)(\b.+?\b)
и я хочу заменить его
\u\1
для каждого вхождения в тексте. Однако мой код только выбирает символ после "e" в заголовке и "D" в Direct и не может найти другие вхождения после этого.
Вы можете мне помочь? Спасибо.
1 ответ
Решение
Вы можете использовать
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+|Title\s*=\s*\{)(\w+)
и заменить на $1\u$2
, Посмотрите демонстрацию regex (она немного изменена, поскольку regex101, похоже, не поддерживает \u
оператор).
подробности
(\G(?!^)(?:[^}\n\w]+(?:o[fn]|in))*[^}\n\w]+|Title\s*=\s*\{)
- любой из двух вариантов:\G(?!^)(?:[^}\n\w]+(?:o[fn]|in|the|by|for|to|and*|a))*[^}\n\w]+
:\G(?!^)
- конец предыдущего матча(?:[^}\n\w]+(?:o[fn]|in))*
- 0 или более повторений[^}\n\w]+
- 1 или более символов, кроме}
НЧ и слово чар(?:o[fn]|in|the|by|for|to|and*|a)
-of
,on
или жеin
и т. д. (добавьте больше слов, которые следует исключить из заглавных букв здесь)
[^}\n\w]+
- 1 или более символов, кроме}
НЧ и слово чар|
- или жеTitle\s*=\s*\{
-Title
,=
заключено в 0+ пробелов и{
(\w+)
- Группа 2: одно или несколько символов слова.