Notepad++ и regex: как в верхнем регистре определенную часть строки / найти / заменить

Я уже некоторое время пытаюсь заставить это работать, но я не могу найти решение этой задачи сам - хорошо, я очень новичок в регулярном выражении, но мне очень интересно учиться, надеюсь, у кого-нибудь есть для меня мозги...

моя текстовая строка выглядит так-без чисел...

Word1 Word2 word3 (некоторые слова в скобках)
Слово1 (некоторые слова в скобках)
word1, Word2 (некоторые слова в скобках)

означает: Ан неограниченное количество слова!--10--> (иногда только один, может быть, от 2 до 4, иногда разделенные запятыми), за которым следует строка в круглых скобках (значение в скобках не должно меняться)

то, что я ищу, - это два разных regexes-использовать с найти и заменить в notepad++
1. только uppercasing все слова перед скобками
2. вроде нет.1 + Добавление html-тегов)

должно выглядеть так: 1:

WORD1 WORD2 WORD3 (некоторые слова в скобках)
WORD1 (некоторые слова в скобках)
WORD1, WORD2 (некоторые слова в скобках)

и 2:

EDIT: 2nd html-tag был в неправильном положении, теперь правильно!

%htmltag%WORD1 WORD2 WORD3% / htmltag% (некоторые слова в скобках)
%htmltag%WORD1% / htmltag% (некоторые слова в скобках)
%htmltag%WORD1, WORD2% / htmltag% (некоторые слова в скобках)

надеюсь, кто-то может мне помочь-такс много раньше!

2 ответов


часть 1 Вы можете использовать

Find:  ^(.*?)(?=\()
Replace \U

убедитесь, что выбрано регулярное выражение

часть 2

Find: ^(.*?)(\(.*?\))
Replace:%htmltag%%/htmltag%

что происходит

WORD1 WORD2 WORD3 (some words in brackets)
WORD1 (some words in brackets)
WORD1, WORD2 (some words in brackets)

и преобразует его в

%htmltag%WORD1 WORD2 WORD3 %/htmltag%(some words in brackets)
%htmltag%WORD1 %/htmltag%(some words in brackets)
%htmltag%WORD1, WORD2 %/htmltag%(some words in brackets)

Сценарий 1: Создание верхнего регистра для совпадений в Notepad++

вы можете использовать регулярное выражение вроде этого:

\(.*?\)|(\w+)

рабочая демо

на Find/Replace диалог можно поставить \U on Replace with. Итак, если вы перейдете Find Next вы можете заменить строку для создания вывода в верхнем регистре.

enter image description here

Сценарий 2: объединить теги в каждой строке

вы можете использовать это регулярное выражение:

(.+?)\[

рабочая демо

enter image description here