Maison  >  Questions et réponses  >  le corps du texte

Questions rapides sur les connaissances de base de Python

s = 'w w'
s.strip() # 为什么去除不了中间的空格

s = 'w w'
s.replace('\s',';') # 为什么替换不了,\s 表示空格没错吧。。

En fait, la dernière exigence est la suivante :
C'est-à-dire que des espaces (plusieurs), des sauts de ligne (plusieurs), des retours chariot (plusieurs) et d'autres caractères d'espacement apparaîtront au milieu et des deux côtés de la chaîne. convertir ces caractères d'espacement en ";" , existe-t-il un bon moyen

大家讲道理大家讲道理2729 Il y a quelques jours659

répondre à tous(3)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-24 11:36:52

    Strip supprime les espaces aux extrémités gauche et droite, mais les espaces au milieu ne peuvent pas être supprimés.
    replace ne peut pas utiliser d'expressions régulières comme paramètres, vous devez utiliser le module re.

    import re
    re.sub('\s+', ';', 'w w')

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:36:52

    replace est utilisé pour remplacer une chaîne par une autre chaîne, s est une chaîne ordinaire et n'a aucune autre signification.

    Pour vos besoins, je pense que vous pouvez utiliser str.maketrans et traduire des fonctions pour y parvenir.

    Mon environnement d'exécution est python3.5, l'exemple est le suivant :
    s = 'w w'
    transmap=str.maketrans({' ':';','r':';','n':' ;' })
    print( s.translate(transmap) )

    Résultat de l'exécution :
    w;w

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:36:52

    En fait ";".join(s.split()) c'est bien

    répondre
    0
  • Annulerrépondre