Немного по факту, но в случае, если это кому-нибудь пригодится, я смог последовать одному из приведенных здесь примеров (от sdgfsdg) и быстро подобрать регулярные выражения для Notepad ++.
Я должен был аналогичным образом извлечь некоторые избыточные данные из списка опций выпадающего списка HTML в форме:
<select>
<option value="AC">saint_helena">Ascension Island</option>
<option value="AD">andorra">Andorra</option>
<option value="AE">united_arab_emirates">United Arab Emirates</option>
<option value="AF">afghanistan">Afghanistan</option>:
...
</select>
И что я действительно хотел:
<select>
<option value="AC">Ascension Island</option>
<option value="AD">Andorra</option>
<option value="AE">United Arab Emirates</option>
<option value="AF">Afghanistan</option>
...
</select>
После некоторого напряжения я понял, что с версией 5.8.5 (сентябрь 2010 г.) Регулярные выражения, похоже, по-прежнему не допускают определенных циклов в выражениях (если нет другого синтаксиса), например, следующее найдет даже "> united_arab_emirated_emirates"> несмотря на дополнительные символы подчеркивания:
(">)([a-z]+([_]*[a-z]*)*)(">)
Этот запрос работал в большинстве общих инструментов RegEx , но, находясь в Notepad ++, мне приходилось учитывать максимальное количество вложенных подчеркиваний (которых, к сожалению, было 8) вручную, используя гораздо более уродливый:
(">)([a-z]+[_]*[a-z]*[_]*[a-z]*[_]*[a-z]*[_]*[a-z]*)[_]*[a-z]*[_]*[a-z]*[_]*[a-z]*[_]*[a-z]*(">)
Если кто-то знает способ имитировать цикл Regex в функции замены Notepad ++, пожалуйста, дайте мне знать.
Найти что: * (">) ([az] + [_] [az] [_] [az] [_] [AZ] [_] [AZ] ) [_] [AZ] [_] [AZ] [_] [AZ] [_] [AZ] ( ">) *
Заменить на: ">
Результат: 255 случаев были заменены.