Игнорирование совпадения и продолжение

Есть определенные строки, которые находятся в разным местах в большом файле:

... null='surveys' 
... null='section_items' 
... null='sections' 

etc.

Нужно найти совпадение null= или null и отталкиваясь от них изменить правую часть.

Моя попытка:

(?<!/*null='/*)(\w+['])

Ответы (1 шт):

Автор решения: Wiktor Stribiżew

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

(?<=null=')[^']*(?=')

Если символ = необязателен, если его может не быть, используйте

(?<=null='|null')[^']*(?=')
(?:(?<=null=')|(?<=null'))[^']*(?=')

См. пример работы выражения.

Подробности

  • (?<=null=') - положительный блок предварительного просмотра назад, требующий наличия null= сразу слева от текущей позиции ((?<=null='|null') (PCRE, .NET, Java, ICU) / (?:(?<=null=')|(?<=null')) (Python, Notepad++, Boost) найдут позицию в строке сразу после null=' или null')
  • [^']* - ноль и более символов, отличных от '
  • (?=') - положительный блок предварительного просмотра вперёд, требующий наличия ' сразу справа от текущей позиции.
→ Ссылка