0
votes

Extrait uniquement des caractères spécifiques à l'aide de Regex en Python

J'ai besoin d'extraire des caractères spécifiques tels que des supports (pas les éléments de celui-ci), *, # etc et le remplacer par ''. Donc j'ai compilé mon motif comme ci-dessous xxx pré>

ceci donne la sortie: p>

hello you

Input: Abnormal heart rate (with fever) should be monitored. Insert your <Name> here.
Output:Abnormal heart rate with fever should be monitored. Insert your Name here.


8 commentaires

Si vous voulez simplement supprimer certains caractères, vous n'avez pas besoin d'une regex.


Pouvez-vous ajouter plus de données d'exemple qui montre ce que vous essayez de capturer (autre que (vous) )?


Pourquoi vous attendez-vous à ce qu'il retourne (,) quand il n'y a pas de virgule dans la chaîne d'entrée?


Pourquoi utilisez-vous des alternatives au lieu de [[(# {* <> ...] ?


BTW, vous n'avez pas besoin d'échapper à la plupart des caractères spéciaux à l'intérieur [] .


Vous ne pouvez pas avoir une nouvelle ligne dans un littéral à chaîne, à moins que vous n'utilisiez triples-citations autour de lui.


Et si vous mettez une nouvelle ligne dans un regexP, il sera jumelé littéralement.


@TimbieGeleisen: Je l'ai édité avec d'autres entrées. S'il vous plaît trouvez-le


3 Réponses :


0
votes

Il suffit de répertorier tous les caractères que vous souhaitez supprimer dans un ensemble de caractères unique et d'utiliser re.sub () code> pour les supprimer.

print(re.sub(r'[[\](){}<>#*]', '', string))


0 commentaires

1
votes

Cette réponse suppose que vous souhaitez remplacer les termes entre parenthèses ou par tranches d'angle avec seulement le contenu à l'intérieur. C'est-à-dire: xxx pré>

Nous pouvons essayer d'utiliser re7 code> ici avec une fonction de rappel: p> xxx pré>

ceci Prints: P>

Abnormal heart rate with fever should be monitored. Insert your Name here.


0 commentaires

0
votes

Je pense que vous pouvez continuer à remplacer tout avec de l'espace Attendez-vous AZ AZ si vous souhaitez également les chiffres 0-9, vous pouvez spécifier.

public class MyClass {
    public static void main(String args[]) {
      String string = "hello (you) hai";
              String result =string.replaceAll("[^A-Z a-z]","");
      System.out.println(result);
    }
}


1 commentaires

OP a demandé une solution python.