2016-11-24 1 views
0

J'ai un grand nombre de données que j'ai besoin de nettoyer en les affinant. Je suis assez mauvais avec regex et je ne peux pas penser à un moyen d'obtenir ce que je veux, qui extrait une chaîne de texte entre guillemets qui comprend beaucoup de caractères spéciaux comme "'/ \ # @ - Dans chaque cellule, il a le même formatExtraire une chaîne de texte avec regex

légende ': u'text Je veux extraire', u'likes':

Toute aide serait très appréciée

+0

Quelle est votre résultat attendu? –

+0

Je voulais juste avoir la sortie: 'texte que je veux extraire'' Ibrahim l'a résolu, merci d'avoir pris le temps de me répondre! – Gauthier

Répondre

0

Si vous voulez extraire chaîne de texte qui inclut beaucoup de caractères spéciaux entre et est située entre guillemets ' ', vous pouvez le faire en général de cette façon:

\'[\S\s]*?\' 

Demo

.

Dans votre cas, si vous voulez extraire uniquement la citation médial de ceci: caption': u'text I want to extract', u'likes':, essayez cette Regex:

(?<=u\')[\V]*?(?=\'\,) 

Demo

+0

Merci beaucoup, ça marche à merveille! – Gauthier

+0

@Gauthier De rien. – Ibrahim

0

Nous avons conçu openrefine avec quelques fonctions intelligentes pour traiter les cas communs comme le vôtre sans utiliser Regex.

Deux autres façons sympa de gérer cela dans OpenRefine.

  1. Utiliser le menu déroulant:
    • Modifier la colonne
    • divisée en plusieurs colonnes
      • par séparateur séparateur '

  2. Utilisation smartSplit (string, chaîne facultative septembre)

    Renvoie: array

    renvoie le tableau de chaînes obtenues par fractionnement avec du séparateur septembre Gère les citations correctement. Devinez l'onglet ou le séparateur de virgule si "sep" n'est pas donné.

    value.smartSplit("'")[2]