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 № 1Você 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