0
votes

Extraire la sous-chaîne d'une chaîne en utilisant le motif

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? xxx

motif: '' menu '

SUBSTRING À la recherche de: ' xyz '


0 commentaires

3 Réponses :


0
votes

Ceci fera:

menu=([^&]+)


3 commentaires

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.



4
votes

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


0 commentaires

5
votes

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'


3 commentaires

+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.