Ajuda com Verse.Rule

Discussions in Portuguese

Moderator: RubioTerra

pcmac
Posts: 118
Joined: Wed May 30, 2012 4:08 am

Ajuda com Verse.Rule

Post by pcmac »

Preciso de ajuda para desenvolver a verse.rule para um módulo de bíblia.

O módulo KJV não possui títulos e usa as seguintes verse.rule:

verse.rule="((?:^|.+?)(<W[GH]\d+>\ ?)+)" "<wt>$1"
verse.rule="<wt>(.*?)(<W([HG]\d+)>)(<W([HG]\d+)>)?(<W([HG]\d+)>)?" "<wt><a href=_STRONG_$3|_STRONG2_$5|_STRONG3_$7|_NOLINK_>$1</a>$2$4$6"

Dessa maneira os números de Strong podem ser ocultados, bastando configurar no theWord.

Mas se colocarmos títulos nesse módulo e mantivermos essas verse.rule o título fica, estranhamente, abaixo do número do versículo. Os números de Strong continuam podendo ser ocultados.

Se deletarmos a primeira verse.rule, o título fica correto (antes do número do versículo), mas o número de Strong passa a não ficar oculto, mostrando seu número.

A pergunta é: qual(ais) verse.rule que faz com que eu tenha o título antes do verso (que é o correto) e também possa ocultar os números de Strong em um módulo que tem a mesma estrutura do módulo KJV?
RubioTerra
Posts: 724
Joined: Wed Sep 23, 2009 5:13 pm
Location: Brasília, Brazil

Re: Ajuda com Verse.Rule

Post by RubioTerra »

Troque a verse.rule

Code: Select all

verse.rule="((?:^|.+?)(<W[GH]\d+>\ ?)+)" "<wt>$1"
por

Code: Select all

verse.rule="(<TS\d?>.+?<Ts>)?((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Deve resolver.
Rúbio R. C. Terra
Brasília/DF - Brasil
pcmac
Posts: 118
Joined: Wed May 30, 2012 4:08 am

Re: Ajuda com Verse.Rule

Post by pcmac »

Grato! Resolveu o problema.

Só por curiosidade: por que GH e não HG?

Pois na bíblia o hebraico vem antes do grego.
RubioTerra
Posts: 724
Joined: Wed Sep 23, 2009 5:13 pm
Location: Brasília, Brazil

Re: Ajuda com Verse.Rule

Post by RubioTerra »

Numa expressão regular "[GH]" representa um conjunto de caracteres válidos, não importa a ordem.
Rúbio R. C. Terra
Brasília/DF - Brasil
pcmac
Posts: 118
Joined: Wed May 30, 2012 4:08 am

Re: Ajuda com Verse.Rule

Post by pcmac »

No caso de um versículo no qual constam vários títulos como ficaria?

Eu coloquei assim a primeira verse.rule e funcionou, mas não sei se há um modo melhor (a segunda verse.rule mantive igual):

verse.rule="(<TS\d?>.+?<Ts>)?(<TS\d?>.+?<Ts>)?(<TS\d?>.+?<Ts>)?((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1$2$3<wt>$4"

Creio que assim funcione para até três títulos na mesma linha.
RubioTerra
Posts: 724
Joined: Wed Sep 23, 2009 5:13 pm
Location: Brasília, Brazil

Re: Ajuda com Verse.Rule

Post by RubioTerra »

Seria melhor usar o * em vez de repetir a expressão. Teste aí:

Code: Select all

verse.rule="(<TS\d?>.+?<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Rúbio R. C. Terra
Brasília/DF - Brasil
User avatar
JG
Posts: 4338
Joined: Wed Jun 04, 2008 8:34 pm

Re: Ajuda com Verse.Rule

Post by JG »

Rúbio
I think that there is a problem. Shouldn't it be without the ?

verse.rule="(<TS\d?>.+?<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Jon
the
Word 6 Bible Software
OS for testing; Windows 10
Beta Download ------Beta Setup Guide------On-line Manual------Tech doc's and Utilities------Copyright Factsheet
pcmac
Posts: 118
Joined: Wed May 30, 2012 4:08 am

Re: Ajuda com Verse.Rule

Post by pcmac »

RubioTerra wrote:Seria melhor usar o * em vez de repetir a expressão. Teste aí:

Code: Select all

verse.rule="(<TS\d?>.+?<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Desta maneira "perde" o primeiro título quando existem dois no mesmo versículo (não testei com 3 títulos)
JG wrote:Rúbio
I think that there is a problem. Shouldn't it be without the ?

verse.rule="(<TS\d?>.+?<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
De fato, sem ? funciona melhor.


verse.rule="(<TS\d?>.+<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Post Reply