Регулярное выражение - соответствует строке, не содержащей «полуслова»

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

у меня 2 переменные

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

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

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

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


person Farse Creed    schedule 04.08.2011    source источник
comment
Не могли бы вы правильно сформулировать свой вопрос? Я не уверен, что с этим делать. stackoverflow.com/editing-help   -  person BoltClock    schedule 04.08.2011
comment
Очень запутанный вопрос.   -  person WoF_Angel    schedule 04.08.2011


Ответы (4)


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

Пункт списка

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

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

person David Hobs    schedule 10.08.2011
comment
Инструмент Regex из № 3 не поддерживает просмотр регулярных выражений. Тестер регулярных выражений лучше. - person Sanghyun Lee; 15.05.2012

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

person Benjamin    schedule 17.10.2012

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

person Ivo Abeloos    schedule 04.08.2011

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

(?<!PlayerInfo)\[playerid\]

EDIT: к сожалению, notepad++ не поддерживает отрицательный просмотр назад.

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

(.[^o]|[^f]o)[идентификатор_игрока]

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

person eugene_che    schedule 04.08.2011
comment
Нет, Notepad++ этого не поддерживает. - person BoltClock; 04.08.2011
comment
v6+ поддерживает отрицательный ретроспективный анализ - person RJFalconer; 21.08.2013