Basilicofresco created this task.
Basilicofresco added a project: Pywikibot-replace.py.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.

TASK DESCRIPTION
  **List of steps to reproduce**:
  
  - I'm running pywikibot version 7.2.0 on Python 3.10.4 and Win11
  
  **What happens?**:
  
    pwb.py replace.py -regex -page:"Foot-Ball Club Juventus 1910-1911" 
"\W([nN])è\W" "né" -exceptinside:"{{sic\|[^{}]+}}" -exceptinside:"citazione 
*=[^\|\n]+" -lang:it
  
  When I launch for example this replacement on the above article, it tries to 
replace "nè" with "né" within "{{sic|nè}}".
  Please note that on this specific article these two exceptions are 
overlapping. Interestingly if I will remove one of them, the replacement will 
not occour.
  
    pwb.py replace.py -regex -page:"Foot-Ball Club Juventus 1910-1911" 
"\W([nN])è\W" "né" -exceptinside:"{{sic\|[^{}]+}}" -lang:it
  
    pwb.py replace.py -regex -page:"Foot-Ball Club Juventus 1910-1911" 
"\W([nN])è\W" "né" -exceptinside:"citazione *=[^\|\n]+" -lang:it
  
  It happens with exceptinside exceptions both from command line and from 
user-fixes.py.
  
  The article I'm using as example is 
https://it.wikipedia.org/wiki/Foot-Ball_Club_Juventus_1910-1911 and it contains:
  
    {{cita 
news|url=http://www.byterfly.eu/islandora/object/libria:41302/datastream/PDF/content/libria_41302.pdf|titolo=A
 Torino. Juventus F.C.-Piemonte F.C. fanno match pari, 1-1.|pubblicazione=[[La 
Stampa Sportiva]]|pp=6-7|data=4 dicembre 1910|accesso=27 novembre 
2020|citazione=Il match, annunciato per le ore 15, ebbe una buona mezz'ora di 
ritardo per la semplice ragione che {{sic|nè}} giuocatori, {{sic|nè}} l'arbitro 
si diedero premura di essere puntuali. Il pubblico restò così trenta minuti a 
battere i piedi dal freddo e ad ammirare ogni altra cosa {{sic|fuorchè}} 
l'annunciata partita.}}
  
  As you can see in this case
  
  - exceptinside:"citazione *=[^\|\n]+" matches //"citazione=Il match, 
annunciato per le ore 15, ebbe una buona mezz'ora di ritardo per la semplice 
ragione che {{sic|nè}} giuocatori, {{sic|nè}} l'arbitro si diedero premura di 
essere puntuali. Il pubblico restò così trenta minuti a battere i piedi dal 
freddo e ad ammirare ogni altra cosa {{sic|fuorchè}} l'annunciata partita.}}"//
  - exceptinside:"{{sic\|[^{}]+}}" matches //"{{sic|nè}}"//
  
  **What should have happened instead?**:
  The correct operation of each exceptinside exception should be indipendent 
from the other exceptions. Even if they are overlapping.

TASK DETAIL
  https://phabricator.wikimedia.org/T311556

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Basilicofresco
Cc: Aklapper, pywikibot-bugs-list, Basilicofresco, binbot, Xqt
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to