regex PostID extracten

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • demon326
  • Registratie: Oktober 2006
  • Laatst online: 19:42
Dag beste mensen,

Ik ben een forum software conversie aan het testen en ik loop tegen een laatste probleem aan, met name de bbcode voor quotes om te zetten naar de nieuwe software. Om dit te doen dien ik een regex te gebruiken en met veel google hulp heb ik al een heel groot deel klaar gekregen.

Wat lukt mij dan niet? Ik dien een bepaalde waarde, met name een PostID uit de url te extracten en enkeln deze, zonder url weergeven.

Dit is de huidige regex:
code:
1
/\<woltlab-quote data-author="(.*?)" data-link="">(.*?)<\/woltlab-quote>/


Dit is de test string:
code:
1
<woltlab-quote data-author="gebruikersnaam" data-link="https://website.be/topic/26-wat-luister-je-nu/?postID=47047#post47047">aaaaaaaaaaaaa</woltlab-quote>


Dit zijn de replacement patronen:
code:
1
[QUOTE="$1", post: "$2"]$3[/QUOTE]


Dit moet het resultaat zijn:
code:
1
[QUOTE="gebruikersnaam", post: "47047"]aaaaaaaaaaaaa[/QUOTE]


De bedoeling is dat hij bij "postID=47047" het nummer, in dit geval "47047" extract en bij post: "" zet.

Het moet hier werken, dan weet ik dat ie ook werkt op de uitvoer:
https://regex101.com/

Alvast bedankt!

Beste antwoord (via demon326 op 06-12-2017 11:25)


  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 08-10 15:12
Ik zou het heel simpel houden. Dit met de aanname dat een postID altijd uit cijfers bestaat.

code:
1
.*data-author=\"(.*)\"\s.*\?postID=(\d*).*\">(.*)<\/

$1 author
$2 postID
$3 inhoud

[ Voor 18% gewijzigd door Khallouki op 05-12-2017 15:24 ]

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 08-10 15:12
Ik zou het heel simpel houden. Dit met de aanname dat een postID altijd uit cijfers bestaat.

code:
1
.*data-author=\"(.*)\"\s.*\?postID=(\d*).*\">(.*)<\/

$1 author
$2 postID
$3 inhoud

[ Voor 18% gewijzigd door Khallouki op 05-12-2017 15:24 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
In je huidige regex staat:
code:
1
data-link=""

waardoor deze niet matcht met je string.
In je huidige regex staat
code:
1
\<

Waarom escape je < hier wel en later niet meer?

Acties:
  • 0 Henk 'm!

  • demon326
  • Registratie: Oktober 2006
  • Laatst online: 19:42
Khallouki schreef op dinsdag 5 december 2017 @ 15:23:
Ik zou het heel simpel houden. Dit met de aanname dat een postID altijd uit cijfers bestaat.

code:
1
.*data-author=\"(.*)\"\s.*\?postID=(\d*).*\">(.*)<\/

$1 author
$2 postID
$3 inhoud
Bedankt voor jouw snelle reactie! Het heeft perfect gewerkt ;) .

Ik heb echter nog één regex waar ik jouw hulp bij kan gebruiken:

Wat ik NU heb:
code:
1
[IMG]https://site.be/wcf/images/smilies/emojione/1f609.png" class="smiley" alt=";)" height="23" srcset="https://site.be/wcf/images/smilies/emojione/1f609@2x.png 2x[/IMG]


Wat ik wil bekomen:
code:
1
[img]https://site.be/wcf/images/smilies/emojione/1f609.png[/img]


Zou je me daar nog eens even mee kunnen helpen? ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
demon326 schreef op woensdag 6 december 2017 @ 11:33:
Zou je me daar nog eens even mee kunnen helpen? ;)
Kan iemand even...? en scriptrequests zijn we hier niet zo blij mee ;) Geef eens aan wat je zelf al bedacht en/of geprobeerd had, waarom dat volgens jou niet werkte, wat je gezocht/gevonden hebt etc. Dan kunnen wij je vast wijzen op je (redenatie)fout(en) en daar leer je meer van dan lekker kant-en-klaar een voorgekauwde regex op een zilveren schaaltje aangereikt krijgen.

Dit geldt dus voor jou en @Khallouki:
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 08-10 15:12
RobIII schreef op woensdag 6 december 2017 @ 11:36:
[...]

Kan iemand even...? en scriptrequests zijn we hier niet zo blij mee ;) Geef eens aan wat je zelf al bedacht en/of geprobeerd had, waarom dat volgens jou niet werkte, wat je gezocht/gevonden hebt etc. Dan kunnen wij je vast wijzen op je (redenatie)fout(en) en daar leer je meer van dan lekker kant-en-klaar een voorgekauwde regex op een zilveren schaaltje aangereikt krijgen.

Dit geldt dus voor jou en @Khallouki:

[...]
Ja precies, dat wou ik ook zeggen. Even zelf wat moeite doen. =)

Acties:
  • 0 Henk 'm!

  • demon326
  • Registratie: Oktober 2006
  • Laatst online: 19:42
met deze krijg ik alvast het volgende:
code:
1
\[img\s(?:.*?src="(.*?)".*?)?(?:.*?srcset="(.*?)".*?)?[^\]]*]


code:
1
[img]$2[/img]


code:
1
[img]https://site.be/wcf/images/smilies/emojione/263a@2x.png 2x[/img]


Moet worden:
code:
1
[img]https://site.be/wcf/images/smilies/emojione/263a@2x.png[/img]


Verder dan dit raak ik jammer genoeg niet na uurtjes google raadplegen. Ik snap niets van regexes en daarom heb ik jullie hulp nodig. :P

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
demon326 schreef op woensdag 6 december 2017 @ 18:56:
Ik snap niets van regexes en daarom heb ik jullie hulp nodig. :P
Nogmaals: we willen je best helpen, maar geef dan aan wat je niet snapt. Je schouders ophalen en roepen "iksnaputnie!" werkt hier niet. Er zijn ongeveer een baziljoen regex tutorials en cheat sheets te vinden. Laten zien wat je geprobeerd hebt houdt in je regex (of "oplossing") beargumenteren; je gedachtengang uitleggen. Dan kunnen wij je aanwijzen waar je de (redenatie)fout maakt. Een paar willekeurige strings in [code]-tags in een post mikkeren zonder aangeven waar 't voor dient, wat je idee was etc. valt daar niet onder ;)
demon326 schreef op woensdag 6 december 2017 @ 18:56:
Verder dan dit raak ik jammer genoeg niet na uurtjes google raadplegen
Ook hier weer: "Ik heb gegoogled!"... ja? Naar kattenplaatjes? We kunnen je toch niet helpen (of tips geven hoe beter te (leren) googlen) als je niet aangeeft waar je dan naar gezocht hebt?

[ Voor 21% gewijzigd door RobIII op 06-12-2017 20:18 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1