theWord
http://forum.theword.net/

Ajuda com Verse.Rule
http://forum.theword.net/viewtopic.php?f=24&t=7307
Page 1 of 1

Author:  pcmac [ Sat Jun 17, 2017 1:56 am ]
Post subject:  Ajuda com Verse.Rule

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?

Author:  RubioTerra [ Sat Jun 17, 2017 2:47 pm ]
Post subject:  Re: Ajuda com Verse.Rule

Troque a verse.rule
Code:
verse.rule="((?:^|.+?)(<W[GH]\d+>\ ?)+)" "<wt>$1"
por
Code:
verse.rule="(<TS\d?>.+?<Ts>)?((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"
Deve resolver.

Author:  pcmac [ Mon Jun 19, 2017 3:30 am ]
Post subject:  Re: Ajuda com Verse.Rule

Grato! Resolveu o problema.

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

Pois na bíblia o hebraico vem antes do grego.

Author:  RubioTerra [ Mon Jun 19, 2017 1:46 pm ]
Post subject:  Re: Ajuda com Verse.Rule

Numa expressão regular "[GH]" representa um conjunto de caracteres válidos, não importa a ordem.

Author:  pcmac [ Mon Jun 19, 2017 10:54 pm ]
Post subject:  Re: Ajuda com Verse.Rule

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.

Author:  RubioTerra [ Tue Jun 20, 2017 2:39 pm ]
Post subject:  Re: Ajuda com Verse.Rule

Seria melhor usar o * em vez de repetir a expressão. Teste aí:
Code:
verse.rule="(<TS\d?>.+?<Ts>)*((?:^|.+?)(<W[GH]\d+>\ ?)+)" "$1<wt>$2"

Author:  JG [ Tue Jun 20, 2017 11:48 pm ]
Post subject:  Re: Ajuda com Verse.Rule

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"

Author:  pcmac [ Wed Jun 21, 2017 12:46 am ]
Post subject:  Re: Ajuda com Verse.Rule

RubioTerra wrote:
Seria melhor usar o * em vez de repetir a expressão. Teste aí:
Code:
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"

Page 1 of 1 All times are UTC + 2 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/