Duvida para avaliar expressão

fala galera, tudo bem?

estou com uma dúvida, como validar essas expressões, de um jeito facil :stuck_out_tongue:

Parafuso {que não perfura}
Parafuso {que não perfura 01} este {que não perfura 02} {que não perfura 03}
Parafuso {que não perfura 01}{que não perfura 02}

{Parafuso {perfura}}
{Parafuso {perfura}
{Parafuso perfura}}
não {Parafuso {perfura}} perfura
{Parafuso {perfura}} perfura
perfura {Diego {perfura}}
{Parafuso {perfura} perfura}
Parafuso perfura} perfura}
{Parafuso
Parafuso}
{{Parafuso}
{{{Parafuso}
{{{{{{Parafuso}
{Parafuso}}
{{Parafuso}}
}Parafuso{
Parafuso {que não} }perfura{

as 3 primeiras estão validas, e as outras invalidas, não consegui ver uma expressão regular ou alguma outra forma para validar elas, alguem teria alguma dica, ou ateh msm uma, ou mais, expressões regulares para validar elas?

aceito sugestões!

muito obrigado.

Desculpa a ignorância, mas você quer validar o que?
Se você não explicar melhor fica complicado entender o que vc quer.
Explique o padrão que você precisa validar.

[]´s

opaa
desculpa, talvez eu não fui tão claro

eu gostaria de achar um jeito facil e elegante de validar da seguinte forma
este bloco sendo possiveis entradas em uma string

Parafuso {que não perfura}
Parafuso {que não perfura 01} este {que não perfura 02} {que não perfura 03}
Parafuso {que não perfura 01}{que não perfura 02}

pois os abre chave e fecha chaves, { e }, tem um padrão, começa e termina certinho

já este bloco

{Parafuso {perfura}}
{Parafuso {perfura}
{Parafuso perfura}}
não {Parafuso {perfura}} perfura
{Parafuso {perfura}} perfura
perfura {Diego {perfura}}
{Parafuso {perfura} perfura}
Parafuso perfura} perfura}
{Parafuso
Parafuso}
{{Parafuso}
{{{Parafuso}
{{{{{{Parafuso}
{Parafuso}}
{{Parafuso}}
}Parafuso{
Parafuso {que não} }perfura{

os abre e fecha chaves estão ‘zuados’

espero q tenha consegui explicar o meu problema, eh meio chatinho de escrever ehheheh

obrigado pela resposta!

Ainda está meio confuso. A intenção é uma regex que pegue o “abre” e “fecha” chaves uma única vez?

Acho que isso deve funcionar: \{[^\{\}]*\}

Como a chave é um caracter especial na regex, estou colocando a barra na frente para representar literalmente as chaves. O que estiver entre os colchetes com circunflexo será negado. Portanto:

\{ = Verifica se começa com um “abre” chave.
[^\{\}] = Verifica se o conteúdo não contém chaves.

  • = Indica nenhuma, uma ou várias ocorrências do que estiver entre colchetes, que neste caso é qualquer coisa que não sejam chaves.
    \} = Verifica se termina com um “fecha” chave.

PS.: Se for obrigatório que entre as chaves tenha algum conteúdo, tem que substituir o asterisco * pelo sinal de adição +. O sinal de adição verifica se há pelo menos uma ou mais ocorrências.

Bom. Espero que seja isso. Desculpe se a explicação foi meio confusa.

Falou…

Tah, isso eu entendi.
Mas me explica o padrão.

Acho que o padrão seria algo assim não:

Parafuso\s(\{[.*&&[^\{\}]]\})+

A palavra parafuso seguido de um espaço em branco seguido de sequencias de {.*}.

Bem foi o que entendi =)