J'aimerais extraire une sous-chaîne d'une longue chaîne en fonction d'un motif. Vous vous demandez quel est le meilleur moyen de l'obtenir? motif: SUBSTRING À la recherche de: '' menu ' code> p>
' xyz ' code> p> p>
3 Réponses :
Ceci fera:
menu=([^&]+)
Comment puis-je faire cela dans SQL?
Comment puis-je le faire dans SQL?
Vous devez vérifier si votre moteur SQL DB prend en charge Regex.
Dans PRESTO DB, vous devriez pouvoir utiliser fonction regexp_extract () Code>
, dans le formulaire qui prend en charge la capture de groupes:
menu= # litteral string 'menu=' ( # beginning of capturing group number 1 [^&]+ # at least one character other than '&' ) # end of capturing group number 1
Si votre exemple représente votre objectif de fin de fin, le url_extract_paramètre ( ) code>
fonction est probablement une meilleure solution que REGEX:
SELECT url_extract_parameter('http://abcdef?menu=xyz&source=push', 'menu'); -- returns 'xyz'
+1 URL d'analyse est une tâche aussi courante qu'il est préférable de laisser le code qui est spécifiquement écrit pour le faire.
D'accord avec @andyLester qu'il s'agit d'une meilleure solution que de fegex. Nice que Presto fournit un intégré à cela.
@DavidPhillips: Ce serait bien si vous pouviez modifier votre réponse pour démontrer comment utiliser réellement la fonction dans le cas d'utilisation de l'OP.