Você pode definir prioridades usando um valor de "força". De mágica (5) :
An optional strength can be supplied on a separate line which refers to the current magic description using the following format:
!:strength OP VALUE
The operand OP can be: +, -, *, or / and VALUE is a constant between 0 and 255. This constant is applied using the specified operand to the currently computed default magic strength.
Para diminuir a prioridade da descrição PROTEIN, anexe esta linha:
!:strength - N
... onde N
é grande o suficiente para ficar abaixo da pontuação da descrição do DNA.
A "força mágica padrão computada atualmente" de um teste não é imediatamente óbvia, mas você pode usar o sinalizador --list
para mostrar todos eles. Como alternativa, leia a fonte - a função responsável é apprentice_magic_strength
. É calculado a partir do primeiro teste da entrada, portanto, se você quiser dar a um tipo uma precedência sobre o outro, ter as primeiras linhas idênticas é útil. (Dessa forma, N
só precisa ser 1.)
Um outro problema: seus regexps não são rigorosos o suficiente. *
pode corresponder a zero caracteres, então o padrão é encontrado no início de cada linha - proteína, DNA ou outro. Para apertar, confirme que a linha inteira consiste somente dos caracteres permitidos: \n[ATGC]+$
, ou \n[ATGC]{num,}$
(onde num é o padrão mais curto que você espera ver)
0 string =>header
>&0 regex \n[ATGC]+$ DNA
0 string =>header
>&0 regex \n[ACDEFGHIKLMNPQRSTVWYBZX]+$ PROTEIN
!:strength - 1