/ / Regex localizar e substituir: excluir tudo * exceto * correspondência - regex, notepad ++

Regex localizar e substituir: excluir tudo * exceto * correspondência - regex, notepad ++

Estou usando o Notepad ++ para remover tudo do HTML, exceto um ID correspondente ("idxxxxxx"). Aqui está (parte do) o HTML:

{
href : "/id123456",
title : "Book 1",
year : "2013",
},
{
href : "/id234567",
title : "Book 2",
year : "2014",
},
{
href : "/id345678",
title : "Book 3",
year : "2015",
}

Este regex não está se comportando conforme o esperado:

[^idd{6}]

Em vez de deixar todos os "idxxxxxx" s correspondentes, ele também está deixando partes disso: sequências de números, qualquer instância de "id", não necessariamente seguida por 6 dígitos etc.

Respostas:

1 para resposta № 1

Você pode usar uma redefinição de ramificação.

Encontrar (?s)(?|.*?(idd{6})|.*())
Substituir $1

 (?s)                   # Dot-all
(?|                    # Branch Reset
.*?
( id d{6} )           # (1)
|
.*
( )                    # (1)
)

0 para resposta № 2

Tente isto:

(?s).*?(idd{6})|(?!idd{6}).*$

Usa negação !?. (?s) para modificador multilinha.

Seu Regex está obviamente errado. [^idd{6}] significa qualquer personagem que não seja i, d, , {, }ou 6.


0 para resposta № 3
Find what:     [sS]+?/(idd+)|[sS]*
Replace with:  1n

Saída:

id123456
id234567
id345678