แทนที่สตริงที่เกิดขึ้นครั้งแรกใน Python


116

ฉันมีสตริงตัวอย่าง ฉันจะแทนที่สตริงที่เกิดขึ้นครั้งแรกในสตริงที่ยาวกว่าด้วยสตริงว่างได้อย่างไร

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

คุณกำลังค้นหาและแทนที่อะไร ในนั้นurlคืออะไร?
BoltClock

ฉันต้องการแทนที่การเกิดขึ้นครั้งแรกของ 'ข้อความ' ในสตริง URL ของฉัน
mark34

คำตอบ:


239

ฟังก์ชัน string replace ()ช่วยแก้ปัญหานี้ได้อย่างสมบูรณ์แบบ:

string.replace (s, เก่า, ใหม่ [maxreplace])

ส่งคืนสำเนาของสตริง s ที่เกิดขึ้นทั้งหมดของสตริงย่อยเก่าแทนที่ด้วยใหม่ หากระบุอาร์กิวเมนต์ maxreplace ที่เป็นทางเลือกการเกิด maxreplace แรกจะถูกแทนที่

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

20

ใช้re.subโดยตรงสิ่งนี้ช่วยให้คุณระบุcount:

regex.sub('', url, 1)

(หมายเหตุว่าคำสั่งของการขัดแย้งถูกreplacement, originalไม่ตรงข้ามเช่นอาจจะสงสัยว่า.)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.