Hướng dẫn replace space in string python - thay thế khoảng trắng trong chuỗi python

287

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn thay thế khoảng trắng bằng dấu gạch dưới trong một chuỗi để tạo các url đẹp. Vì vậy, ví dụ:

"This should be connected" 

Nên trở thành

"This_should_be_connected" 

Tôi đang sử dụng Python với Django. Điều này có thể được giải quyết bằng cách sử dụng các biểu thức thông thường?

Tomerikoo

16.7K15 Huy hiệu vàng38 Huy hiệu bạc54 Huy hiệu đồng15 gold badges38 silver badges54 bronze badges

hỏi ngày 17 tháng 6 năm 2009 lúc 14:41Jun 17, 2009 at 14:41

1

Bạn không cần biểu cảm thường xuyên. Python có một phương thức chuỗi tích hợp thực hiện những gì bạn cần:

mystring.replace[" ", "_"]

Luke Exton

3.2462 Huy hiệu vàng18 Huy hiệu bạc32 Huy hiệu đồng2 gold badges18 silver badges32 bronze badges

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 14:44Jun 17, 2009 at 14:44

RogeriOpvlrogerioPVLrogeriopvl

48.8K8 Huy hiệu vàng52 Huy hiệu bạc58 Huy hiệu đồng8 gold badges52 silver badges58 bronze badges

8

Thay thế không gian là tốt, nhưng tôi có thể đề nghị đi xa hơn một chút để xử lý các ký tự url khác như dấu hỏi, dấu nháy đơn, dấu chấm than, v.v.

Cũng lưu ý rằng sự đồng thuận chung giữa các chuyên gia SEO là các dấu gạch ngang được ưu tiên để nhấn mạnh trong URL.

import re

def urlify[s]:

    # Remove all non-word characters [everything except numbers and letters]
    s = re.sub[r"[^\w\s]", '', s]

    # Replace all runs of whitespace with a single dash
    s = re.sub[r"\s+", '-', s]

    return s

# Prints: I-cant-get-no-satisfaction"
print[urlify["I can't get no satisfaction!"]]

vvvvv

19.1K16 Huy hiệu vàng43 Huy hiệu bạc62 Huy hiệu Đồng16 gold badges43 silver badges62 bronze badges

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 15:03Jun 17, 2009 at 15:03

Ngân hàng Kenan BankskenanKenan Banks

201K34 Huy hiệu vàng151 Huy hiệu bạc171 Huy hiệu đồng34 gold badges151 silver badges171 bronze badges

7

Điều này có tính đến các ký tự trống khác với không gian và tôi nghĩ nó nhanh hơn so với sử dụng mô -đun

"This_should_be_connected" 
8:

url = "_".join[ title.split[] ]

Đã trả lời ngày 29 tháng 4 năm 2012 lúc 23:18Apr 29, 2012 at 23:18

XonecaxonecaxOneca

8039 Huy hiệu bạc20 Huy hiệu Đồng9 silver badges20 bronze badges

5

Django có chức năng 'slugify' thực hiện điều này, cũng như các tối ưu hóa thân thiện với URL khác. Nó được ẩn đi trong mô -đun DefaultFilters.

>>> from django.template.defaultfilters import slugify
>>> slugify["This should be connected"]

this-should-be-connected

Đây không chính xác là đầu ra mà bạn đã yêu cầu, nhưng IMO tốt hơn là sử dụng trong URL.

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 15:15Jun 17, 2009 at 15:15

Daniel Rosemandaniel RosemanDaniel Roseman

575K61 Huy hiệu vàng841 Huy hiệu bạc853 Huy hiệu Đồng61 gold badges841 silver badges853 bronze badges

6

Sử dụng mô -đun

"This_should_be_connected" 
8:

import re
re.sub['\s+', '_', "This should be connected"] # This_should_be_connected
re.sub['\s+', '_', 'And     so\tshould this']  # And_so_should_this

Trừ khi bạn có nhiều không gian hoặc các khả năng khoảng trắng khác như trên, bạn có thể chỉ muốn sử dụng

mystring.replace[" ", "_"]
0 như những người khác đã đề xuất.

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 14:45Jun 17, 2009 at 14:45

Jarret Hardiejarret HardieJarret Hardie

92.1k10 Huy hiệu vàng130 Huy hiệu bạc125 Huy hiệu Đồng10 gold badges130 silver badges125 bronze badges

2

Sử dụng phương thức thay thế chuỗi:

mystring.replace[" ", "_"]
1

mystring.replace[" ", "_"]
2

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 14:45Jun 17, 2009 at 14:45

Jarret Hardiejarret Hardiemdirolf

92.1k10 Huy hiệu vàng130 Huy hiệu bạc125 Huy hiệu Đồng2 gold badges22 silver badges15 bronze badges

Sử dụng phương thức thay thế chuỗi:

mdirolfmdirolf

pip install python-slugify

7.3912 Huy hiệu vàng22 Huy hiệu bạc15 Huy hiệu Đồng

from slugify import slugify

txt = "This is a test ---"
r = slugify[txt]
self.assertEquals[r, "this-is-a-test"]

txt = "This -- is a ## test ---"
r = slugify[txt]
self.assertEquals[r, "this-is-a-test"]

txt = 'C\'est déjà l\'été.'
r = slugify[txt]
self.assertEquals[r, "cest-deja-lete"]

txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
r = slugify[txt]
self.assertEquals[r, "nin-hao-wo-shi-zhong-guo-ren"]

txt = 'Компьютер'
r = slugify[txt]
self.assertEquals[r, "kompiuter"]

txt = 'jaja---lol-méméméoo--a'
r = slugify[txt]
self.assertEquals[r, "jaja-lol-mememeoo-a"] 

Đáng ngạc nhiên là thư viện này chưa được đề cậpSep 28, 2015 at 16:01

Gói Python có tên Python-Slugify, công việc khá tốt là chậm chạp:Yash

Hoạt động như thế này:4 gold badges35 silver badges26 bronze badges

Đã trả lời ngày 28 tháng 9 năm 2015 lúc 16:01

string.replace[old, new]

Yashyash

"This_should_be_connected" 
0

6.1144 Huy hiệu vàng35 Huy hiệu bạc26 Huy hiệu đồng

Python có một phương thức tích hợp trên các chuỗi gọi là thay thế được sử dụng như vậy:Jun 18, 2009 at 12:34

Vì vậy, bạn sẽ sử dụng:

"This_should_be_connected" 
1

Tôi đã gặp vấn đề này một thời gian trước đây và tôi đã viết mã để thay thế các ký tự trong một chuỗi. Tôi phải bắt đầu nhớ để kiểm tra tài liệu Python vì chúng đã được xây dựng trong các chức năng cho mọi thứ.

Đã trả lời ngày 18 tháng 6 năm 2009 lúc 12:34Jun 17, 2009 at 15:36

Tôi đang sử dụng đoạn mã sau cho URL thân thiện của mình:Armandas

Nó hoạt động tốt với các ký tự Unicode là tốt.1 gold badge17 silver badges24 bronze badges

1

Đã trả lời ngày 17 tháng 6 năm 2009 lúc 15:36

"This_should_be_connected" 
2

Armandasarmandas

1.7601 Huy hiệu vàng17 Huy hiệu bạc24 Huy hiệu đồng7 gold badges39 silver badges37 bronze badges

Bạn có thể thử điều này thay thế:May 6, 2018 at 15:28

1

"This_should_be_connected" 
3

Jules Dupont

"This_should_be_connected" 
4

6.7517 Huy hiệu vàng39 Huy hiệu bạc37 Huy hiệu đồng

Đã trả lời ngày 6 tháng 5 năm 2018 lúc 15:28Jul 31, 2016 at 16:51

Nếu bạn gán giá trị này cho bất kỳ biến nào, nó sẽ hoạt động

"This_should_be_connected" 
5

theo mặc định myString sẽ không có cái nàyJul 4, 2010 at 23:34

Đã trả lời ngày 31 tháng 7 năm 2016 lúc 16:51skilleo

OP đang sử dụng Python, nhưng trong JavaScript [một cái gì đó cần cẩn thận vì cú pháp là tương tự nhau.1 gold badge27 silver badges34 bronze badges

"This_should_be_connected" 
6

Đã trả lời ngày 4 tháng 7 năm 2010 lúc 23:34

Skilleoskilleo18 gold badges133 silver badges201 bronze badges

2.4221 Huy hiệu vàng27 Huy hiệu bạc34 Huy hiệu đồngNov 28, 2021 at 6:25

4

"This_should_be_connected" 
7

EYLLLANESC

226K18 Huy hiệu vàng133 Huy hiệu bạc201 Huy hiệu đồngJun 19, 2009 at 7:30

Làm thế nào để bạn thay thế một khoảng trống trong một chuỗi trong Python?

Trong Python, có nhiều cách bạn có thể thay thế các không gian trống:..
strip[].
replace[].
tham gia [] với str.tách ra[].
translate[].
lại.sub [].

Làm cách nào để loại bỏ không gian cụ thể khỏi chuỗi trong Python?

Dải [] Chức năng Dải chuỗi Python [] sẽ loại bỏ các khoảng trắng dẫn đầu và dấu vết.Nếu bạn muốn loại bỏ các không gian dẫn hoặc dấu vết, hãy sử dụng hàm lstrip [] hoặc rstrip [] thay thế. Python String strip[] function will remove leading and trailing whitespaces. If you want to remove only leading or trailing spaces, use lstrip[] or rstrip[] function instead.

Làm thế nào để bạn thay thế tất cả các không gian trong một chuỗi?

Sử dụng phương thức String.replace [] để thay thế tất cả các khoảng trống trong một chuỗi, ví dụ:str.thay thế [ / / g, '+'];.Phương thức thay thế [] sẽ trả về một chuỗi mới với tất cả các khoảng trống được thay thế bằng cách thay thế được cung cấp. replace[] method to replace all spaces in a string, e.g. str. replace[/ /g, '+']; . The replace[] method will return a new string with all spaces replaced by the provided replacement.

Làm thế nào để bạn loại bỏ khoảng trống khỏi một chuỗi?

Sử dụng chuỗi.thay thế [] phương thức để loại bỏ tất cả khoảng trắng khỏi một chuỗi, ví dụ:str.thay thế [/\ s/g, ''].Phương thức thay thế [] sẽ loại bỏ tất cả các ký tự khoảng trắng bằng cách thay thế chúng bằng một chuỗi trống.

Bài Viết Liên Quan

Chủ Đề