2017-06-07 9 views
1

Ich möchte den Text zwischen den% 3A extrahieren. Hiererhalten Text zwischen Text mit Regex

ist die Probe Satz:

http://www.sample.com/res?ccode=1232&note=sampletext&token=12Add-12sre-24Aod-23343-34kdi%3A3232121%3ATVLOPQUI%3AIOOPDA%3AKKKKK%3A&ltr=23232 

ich unten Ausdruck versucht:

[&]{1}token[=]{1}([a-zA-Z0-9-%]*)(%3A(.*?)%3A){1} 

aber die erwartete Phrase ist:

während, wird die Erfassung der ungültigen Sache .

Können Sie mir vorschlagen, wie das in einer besseren Art und Weise zu tun

+1

Sind Sie hier nur auf Regex beschränkt? –

+0

Danke für die Antwort Wikitor, ja, es gibt keine Option hier. Ich muss Regex verwenden – Creator

+0

Etwas wie: '(? <=% 3A |:) (\ d +)'? –

Antwort

2

Unter der Annahme, dass es keine wörtliche & in den params, können Sie das folgende Muster verwenden:

[&?]token=[^&%]*%3A([^%&]+) 

Siehe regex demo

Einzelheiten:

  • [&?]token= - a &token= oder ?token= Teilzeichenfolge
  • [^&%]* - null oder mehr Zeichen anders als & und %
  • %3A - a %3A Teilzeichenfolge
  • ([^%&]+) - Gruppe 1 Erfassen 1 oder mehr Zeichen anders als % und & .
+1

Danke Wiktor für schnelle Hilfe :) – Creator

Verwandte Themen