Gebruiker:Bmulckhu/kladblok5

Uit TheaterEncyclopedie
Ga naar: navigatie, zoeken

Probleem met invoer met dubbele vierkante haken en evt. "weergave" verhelpen

{{#rreplace:[[Land]] | [\[\]] | }}

Resultaat: Land

{{#rreplace:[[Land]] | \[\[{{!}}\]\] | }}

Resultaat: Land

Gecombineerd gebruik met pipe:

{{#rreplace: [[Paginatititel|weergave]]  | \[\[{{!}}\{{!}}\s*\w+\s*\]\]{{!}}\]\] | }}

Resultaat: [[Paginatititel

{{#rreplace: [[Paginatititel]]  | \[\[{{!}}\{{!}}\s*\w+\s*\]\]{{!}}\]\] | }}

Resultaat: Paginatititel

Probleem gecombineerde invoer "plaats, datum" verhelpen

{{#rreplace: Amsterdam, 1 jan 1981| (^.*)\,\s*.* | $1 }}
{{#rreplace: Amsterdam, 1 jan 1981| ^.*\,\s*(.*) | $1 }}

Resultaat:

  • Amsterdam, 1 jan 1981
  • Amsterdam, 1 jan 1981

Probleem "beroep = [[:categorie:beroepsnaam|weergavenaam]]

{{#rreplace:[[:Categorie:Paginanaam]] | ^\[\[(:[Cc]ategor(y{{!}}ie):)([^\{{!}}^\].]+)(\{{!}}(.*)\]\]{{!}}\]\]) | $3 }}
{{#rreplace:[[:Categorie:Paginanaam|Weergave]] | ^\[\[(:[Cc]ategor(y{{!}}ie):)([^\{{!}}^\].]+)(\{{!}}(.*)\]\]{{!}}\]\]) |$5 }}
Bron regex: ^\[\[(:[Cc]ategor(y|ie):)([^\|^\].]+)(\|(.*)\]\]|\]\]) 

Resultaat:

NB:

  • Meervoudige invoer met komma gescheiden
  • Meervoudige invoer met categorie EN met komma gescheiden...

Probleem invoer afbeeldingen

{{#rreplace:[[afbeelding:bestandsnaam.jpg|260px]] |^\[\[([Aa]fbeelding:{{!}}[Bb]estand:{{!}}[Ff]ile;{{!}}[Ii]mage:)([^\{{!}}^\].]+\.[^\{{!}}^\].]+)(\{{!}}(.*)\]\]{{!}}\]\]) | $2 }}

Bron regex: ^\[\[([Aa]fbeelding:|[Bb]estand:|[Ff]ile;|[Ii]mage:)([^\|^\].]+\.[^\|^\].]+)(\|(.*)\]\]|\]\]) 

Resultaat: Bestand:Bestandsnaam.jpg

Probleem invoer meervoudige waarden met komma gescheiden en met vierkante haken

Dit probleem komt (o.a.) bij het toewijzen van de producent / gezelschappen in de sjabloon [[Sjabloon:Infobox_productie]]

Stap1: Vervangen komma door puntkomma:

{{#rreplace: Producent1, Producent2 | \, | ; }}

Resultaat: Producent1, Producent2

vervolg

Stap: Laten vervallen vierkante haken en/of vervangen komma door puntkomma vereist nesting - werkt dat?? - het lijkt van niet...

Andere aanpak: "Vervang iedere reeks, evt. voorafgegaan door vierkante haken en evt. opgevolgd door een pipe met een naam en vierkante haken, maar steeds gevolgd door een komma, door die reeks gevolgd door een puntkomma...

Regex:

{{#rreplace: Producent1, [[Productent2]], [[Producent3|naam]], Producent4 | (\[\[)*(\.+)((\{{!}}\.*)*\]\])*\,| $2;}}
Oorspronkelijke regex: (\[\[)*(\w+)((\|\w*)*\]\])*\,
Alternatieve regex: (\[\[)*(\.+)((\|\.*)*\]\])*\,   (( de "w" lijkt niet herkend te worden door de extensie...maar toch wel...

Resultaat: Producent1, Productent2; naam, Producent4

BM: Het bovenstaande resultaat wordt (nog???) niet conform de oorspronkelijke regex gefilterd??? object cache???

Probleem is nog de laatste variabele (indien die ook tussen vierkante haken staat wordt dat niet verbeterd...)

Verbeterde versie:

(\[\[)*(\w+)((\|\w*)*\]\])*(\,)*

Resultaat: Producent1, Productent2; naam, Producent4

Opmerking: deze regex geeft een extra puntkomma aan het einde van de reeks. Nog testen of dat problematisch is bij toewijzingen...

Testen

Om te testen of bovenstaande oplossingen een goede verbetering brengen zijn op de test-TE de volgende sjablonen aangepast:

Er is ook een tijdelijke Sjabloon:Infobox test bm gemaakt op de Test-TE. Sjabloon:Infobox test bm

Regex test in Sjabloon: Infobox persoon (alleen nog beschikbaar op Test-TE)

Vergelijk:

Productie Test
https://theaterencyclopedie.nl/wiki/Cyriel_Verschaeve https://test.theaterencyclopedie.nl/wiki/Cyriel_Verschaeve
https://theaterencyclopedie.nl/wiki/Marijke_Philips https://test.theaterencyclopedie.nl/wiki/Marijke_Philips
https://theaterencyclopedie.nl/wiki/Donald_Bleijleve https://test.theaterencyclopedie.nl/wiki/Donald_Bleijleve
https://theaterencyclopedie.nl/wiki/.Rob_de_Graaf https://test.theaterencyclopedie.nl/wiki/.Rob_de_Graaf

NB: Het "bijwerken" van de toewijzing van de semantische eigenschap duurt lang (~weken); pas na een "purge" is de toewijzing doorgevoerd. Testen van oplossingen:

  • Regelmatig de Jobqueue legen door een cron-job te definiëren
  • Eenmalig een SMW_refreshData.php en/of update.php uitvoeren