Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

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?

Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

Tomerikoo

16.8K15 Huy hiệu vàng38 Huy hiệu bạc56 Huy hiệu đồng15 gold badges38 silver badges56 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.2762 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

49.2k8 Huy hiệu vàng53 Huy hiệu bạc58 Huy hiệu Đồng8 gold badges53 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!"))

Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

vvvvv

19.4K16 Huy hiệu vàng44 Huy hiệu bạc64 Huy hiệu đồng16 gold badges44 silver badges64 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

Huy hiệu vàng 202K3434 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

8139 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

577K62 Huy hiệu vàng844 Huy hiệu bạc858 Huy hiệu Đồng62 gold badges844 silver badges858 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.5K10 Huy hiệu vàng130 Huy hiệu bạc126 Huy hiệu đồng10 gold badges130 silver badges126 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.5K10 Huy hiệu vàng130 Huy hiệu bạc126 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.4012 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.1644 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

Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

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

Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

1

"This_should_be_connected" 
3

Jules Dupont

"This_should_be_connected" 
4

6.7937 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

Hướng dẫn how to replace spaces in a string python - cách thay thế khoảng trắng trong chuỗi python

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

Skilleoskilleo18 gold badges135 silver badges204 bronze badges

2.4211 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

227K18 Huy hiệu vàng135 Huy hiệu bạc204 Huy hiệu đồngJun 19, 2009 at 7:30

Làm cách nào để loại bỏ khoảng trống khỏi một chuỗi trong Python?

Chức năng Dải chuỗi Python () sẽ loại bỏ các khoảng trắng dẫn đầu và theo dõi.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ế.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 đổi không gian của 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 thay thế không gian trong Python bằng các chấm?

Sử dụng Re.Phương thức phụ () để thay thế tất cả các ký tự khoảng trắng bằng dấu gạch dưới.... Để thay thế không gian bằng dấu gạch dưới trong Python:.

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

Phương thức thay thế () của lớp chuỗi thay thế cho mỗi chuỗi con của chuỗi này phù hợp với biểu thức chính quy đã cho với sự thay thế đã cho.Bạn có thể loại bỏ các không gian trắng khỏi một chuỗi bằng cách thay thế "" bằng "".