J'utilise Je veux toujours extraire la deuxième partie barre oblique de l'URL - c'est-à-dire /football/^ regexp_extract (hit.page.pagepath, r'www.abcd.com /(.*?)/ ')
mais cela me donne ' sports ' code> en grande requête et je souhaite extraire uniquement après
'sports'
et avant 'gamescore'
, c'est-à-dire 'football'
. p >
3 Réponses :
split ()
est un moyen simple de le faire:
select split('https://www.abcd.com/sports/football/gamescore', '/')[safe_ordinal(4)]
@DivyangJain. . . Y a-t-il une raison pour laquelle vous n'avez pas accepté cette réponse? Cela semble être la solution la plus simple à votre problème.
Votre tentative est assez proche:
regexp_extract(hit.page.pagepath, r'www.abcd.com/[^/]+/([^/]+)/')
[^ /] +
représente une séquence de caractères autres que /
(au moins un caractère).
Ci-dessous est pour BigQuery Standard SQL
Je suggère ci-dessous l'expression régulière pour éliminer la dépendance au domaine codé en dur
Row f0_ 1 football 2 football 3 football 4 football 5
Vous pouvez tester, jouer avec en utilisant l'exemple ci-dessous
#standardSQL WITH `project.dataset.table` AS ( SELECT 'https://www.abcd.com/sports/football/gamescore' url UNION ALL SELECT 'http://www.abcd.com/sports/football/gamescore' url UNION ALL SELECT 'www.abcd.com/sports/football/gamescore' url UNION ALL SELECT 'www.abcd.com/sports/football' url UNION ALL SELECT 'www.abcd.com/sports/' url ) SELECT REGEXP_EXTRACT(url, r'(?:https://|http://|)(?:.*?/){2}([^/]*)') FROM `project.dataset.table`
avec résultat
REGEXP_EXTRACT(url, r'(?:https://|http://|)(?:.*?/){2}([^/]*)')
Évidemment - vous pouvez l'ajuster davantage pour présenter votre cas d'utilisation réel
Par exemple, en modifiant {2}
, vous pouvez contrôler la partie de l'URL à extraire
Vous avez un tarif bas. Important sur SO - vous pouvez
marquer la réponse acceptée
en utilisant la coche à gauche de la réponse publiée, sous le vote. Voir meta.stackexchange .com / questions / 5234 /… pour savoir pourquoi c'est important! Il est également important devoter sur la réponse
. Votez pour les réponses utiles. ... Vous pouvez vérifier ce qu'il faut faire lorsque quelqu'un répond à votre question - stackoverflow.com/help/someone-answers . En suivant ces règles simples, vous augmentez votre propre score de réputation et en même temps vous nous motivez à répondre à vos questions: o) veuillez considérer!