Regex - соответствует строке, не содержащей "полуслов"

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

У меня есть 2 переменные

PlayerInfo[playerid][pLevel] и персонаж [playerid]

и я хочу поймать только вторую переменную, я имею в виду только мир, который не содержит PlayerInfo, но cointains [playerid]

"(\S+)\[playerid\]" собери оба слова и (\S+[^PlayerInfo])\[playerid\] перейти на некоторые переменные - они содержат р, л, а, у...

Мне нужно заменить в notepad++, все переменные, такие как Text[playerid] на ExClass [playerid] [Text]

4 ответа

Решение

Пара возможных решений.

Элемент списка

  1. Блокнот имеет плагин, который называется python script. Запуск regex оттуда дает полную функциональность regex, версию Python в любом случае, и огромный потенциал за ее пределами. И я использую тестер регулярных выражений Python, чтобы помочь.
  2. Плагин RegRexReplace помогает создавать плагины регулярных выражений в Notepad++, поэтому, когда вы сталкиваетесь с ограничением, вы узнаете намного быстрее.
  3. Или, конечно, по умолчанию ваш альтернативный редактор (я полагаю, у вас есть один?), Или этот онлайн- инструмент для регулярных выражений просто потрясающий. Вы можете выполнить действие над текстом онлайн.

(Я бы попробовал создать для вас регулярное выражение, но я немного растерялся относительно того, что вы ищете. Если только у Ivo Abeloos его нет. Если вы все еще не дотягиваете, возможно, приведите пример кода вместе с значения отображаются?) Удачи!

Кажется, что Notepad++ поддерживает отрицательный взгляд с v6.

В notepad++ вы можете попробовать заменить (.+)\[(.+)\] с ExClass\[\2\]\[\1\]

Попробуйте использовать отрицательный взгляд назад.

(?<!PlayerInfo)\[playerid\]

РЕДАКТИРОВАТЬ: к сожалению, notepad++ не поддерживает отрицательный взгляд назад.

Я попытался сделать обходной путь, основанный на следующей наивной идее:

([^ О]|. [^ Е] о)[playerid]

Но это выражение тоже не работает. Кажется, что Notepad++ не работает в альтернативном операторе. Таким образом, ответ таков: невозможно делать именно то, что вы хотите. Попробуйте решить проблему другим способом или воспользуйтесь альтернативным инструментом.

Другие вопросы по тегам