Regex - соответствует строке, не содержащей "полуслов"
Я пытался сделать синтаксис регулярных выражений для этого, но мне не удалось.
У меня есть 2 переменные
PlayerInfo[playerid][pLevel] и персонаж [playerid]
и я хочу поймать только вторую переменную, я имею в виду только мир, который не содержит PlayerInfo, но cointains [playerid]
"(\S+)\[playerid\]"
собери оба слова и (\S+[^PlayerInfo])\[playerid\]
перейти на некоторые переменные - они содержат р, л, а, у...
Мне нужно заменить в notepad++, все переменные, такие как Text[playerid] на ExClass [playerid] [Text]
4 ответа
Пара возможных решений.
Элемент списка
- Блокнот имеет плагин, который называется python script. Запуск regex оттуда дает полную функциональность regex, версию Python в любом случае, и огромный потенциал за ее пределами. И я использую тестер регулярных выражений Python, чтобы помочь.
- Плагин RegRexReplace помогает создавать плагины регулярных выражений в Notepad++, поэтому, когда вы сталкиваетесь с ограничением, вы узнаете намного быстрее.
- Или, конечно, по умолчанию ваш альтернативный редактор (я полагаю, у вас есть один?), Или этот онлайн- инструмент для регулярных выражений просто потрясающий. Вы можете выполнить действие над текстом онлайн.
(Я бы попробовал создать для вас регулярное выражение, но я немного растерялся относительно того, что вы ищете. Если только у Ivo Abeloos его нет. Если вы все еще не дотягиваете, возможно, приведите пример кода вместе с значения отображаются?) Удачи!
Кажется, что Notepad++ поддерживает отрицательный взгляд с v6.
В notepad++ вы можете попробовать заменить (.+)\[(.+)\]
с ExClass\[\2\]\[\1\]
Попробуйте использовать отрицательный взгляд назад.
(?<!PlayerInfo)\[playerid\]
РЕДАКТИРОВАТЬ: к сожалению, notepad++ не поддерживает отрицательный взгляд назад.
Я попытался сделать обходной путь, основанный на следующей наивной идее:
([^ О]|. [^ Е] о)[playerid]
Но это выражение тоже не работает. Кажется, что Notepad++ не работает в альтернативном операторе. Таким образом, ответ таков: невозможно делать именно то, что вы хотите. Попробуйте решить проблему другим способом или воспользуйтесь альтернативным инструментом.