-2
votes

Extraire une URL d'une ligne avec plusieurs URL

J'essaie d'extraire une URL d'une ligne contenant plusieurs URL répertoriées.

Spécifiquement, je veux sélectionner la première instance de twitter.com/dog_rates/xxxxxxx dans la ligne et supprimez les données restantes.

Exemples du texte qui doit être extraite

entrée xxx

J'ai essayé d'extraire les URL à l'aide de la tranchée mais heurter le problème qu'il y a plusieurs URL de longueurs variables et positions de délimitation.

Résultats attendus

  1. twitter.com/dog_rates/status/892420643555336193/PHOTO/1

  2. twitter.com/dog_rates/status/878281511006478281511006478281511006478281511006478281511006478336/PHOTO/1

  3. twitter.com/dog_rates/status/812503143955202048/PHOTO/1

  4. twitter.com/dog_rates/status/810984652412424192/Photo/1

  5. twitter.com/dog_rates/status/888804989199671297/PHOTO/1


1 commentaires

Comment décidez-vous lorsque l'URL souhaité se termine? Avec une virgule?


4 Réponses :


1
votes

Essayez ceci:

my_data = [
    'twitter.com/dog_rates/status/892420643555336193/photo/1',         
    'www.gofundme.com/3yd6y1c,twitter.com/dog_rates/status/878281511006478336/photo/1',
    'm.facebook.com/story.php?story_fbid=1888712391349242&id=1506300642923754&refsrc=ht.co%2FURVffYPPjY&_rdr,twitter.com/dog_rates/status/812503143955202048/photo/1,twitter.com/dog_rates/status/812503143955202048/photo/1',
    'www.gofundme.com/sams-smile,twitter.com/dog_rates/status/810984652412424192/photo/1,twitter.com/dog_rates/status/709901256215666688/photo/1,twitter.com/dog_rates/status/709901256215666688/photo/1,twitter.com/dog_rates/status/709901256215666688/photo/1,twitter.com/dog_rates/status/709901256215666688/photo/1',
    'twitter.com/dog_rates/status/888804989199671297/photo/1,twitter.com/dog_rates/status/888804989199671297/photo/1'
]



final_results = []
pattern= 'twitter.com/dog_rates/'
​
for row in my_data:
    splited_row = row.split(',')
    for recod in splited_row:
        if recod.startswith(pattern):
            final_results.append(recod)
            break

In [10]:

final_results
Out[10]:
['twitter.com/dog_rates/status/892420643555336193/photo/1',
 'twitter.com/dog_rates/status/878281511006478336/photo/1',
 'twitter.com/dog_rates/status/812503143955202048/photo/1',
 'twitter.com/dog_rates/status/810984652412424192/photo/1',
 'twitter.com/dog_rates/status/888804989199671297/photo/1']


0 commentaires

2
votes

Essayez ceci, xxx

extraire juste la dernière valeur divisée par ,


0 commentaires

0
votes

Vous pouvez facilement faire cela ... chargez chacune des lignes en tant que chaîne.

results=[]
for row in data:
    urls=row.split(",")
    for i in urls:
        if(i.strip().startswith("twitter.com/dog_rates/")):
            results.append(i.strip())
            break


0 commentaires

0
votes

Essayez ceci en utilisant Importer re xxx


0 commentaires