Rumah  >  Soal Jawab  >  teks badan

Soalan cepat pengetahuan asas Python

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

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

Malah, keperluan terakhir ialah ini:
Iaitu, (berbilang) ruang, (berbilang) pemisah baris, (berbilang) pemulangan pengangkutan dan aksara ruang putih lain akan muncul di tengah dan di kedua-dua belah rentetan yang saya mahu tukar aksara ruang kosong ini kepada ";" , adakah cara yang baik

大家讲道理大家讲道理2680 hari yang lalu628

membalas semua(3)saya akan balas

  • 伊谢尔伦

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

    Strip menghilangkan ruang di hujung kiri dan kanan, tetapi ruang di tengah tidak boleh dibuang.
    ganti tidak boleh menggunakan ungkapan biasa sebagai parameter, anda mesti menggunakan modul re.

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

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:36:52

    replace digunakan untuk menggantikan satu rentetan dengan rentetan yang lain Untuk itu, s ialah rentetan biasa dan tiada maksud lain.

    Berdasarkan keperluan anda, saya rasa anda boleh menggunakan fungsi str.maketrans dan terjemah untuk mencapainya.

    Persekitaran larian saya ialah python3.5, contohnya adalah seperti berikut:
    s = 'w w'
    transmap=str.maketrans({' ':';','r': '; ','n':';'})
    print( s.translate(transmap) )

    Hasil lari:
    w;w

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:36:52

    Sebenarnya ";".join(s.split()) tidak mengapa

    balas
    0
  • Batalbalas