Thay thế lần xuất hiện đầu tiên của chuỗi trong Python


116

Tôi có một số chuỗi mẫu. Làm cách nào để thay thế lần xuất hiện đầu tiên của chuỗi này trong một chuỗi dài hơn bằng chuỗi rỗng?

regex = re.compile('text')
match = regex.match(url)
if match:
    url = url.replace(regex, '')

Bạn đang tìm kiếm và thay thế cái gì? Có gì trong đó url?
BoltClock

Tôi muốn thay thế lần xuất hiện đầu tiên của 'văn bản' trong chuỗi url của mình
đánh dấu 34

Câu trả lời:


239

hàm string Replace () giải quyết hoàn hảo vấn đề này:

string.replace (s, cũ, mới [, maxreplace])

Trả lại bản sao của chuỗi s với tất cả các lần xuất hiện của chuỗi con cũ được thay thế bằng chuỗi mới. Nếu đối số tùy chọn maxreplace được cung cấp, các lần xuất hiện maxreplace đầu tiên sẽ được thay thế.

>>> u'longlongTESTstringTEST'.replace('TEST', '?', 1)
u'longlong?stringTEST'

20

Sử dụng re.subtrực tiếp, điều này cho phép bạn chỉ định count:

regex.sub('', url, 1)

(Lưu ý rằng thứ tự của các đối số replacement, originalkhông phải ngược lại, như có thể bị nghi ngờ.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.