Hướng dẫn how do i replace a number in a string in python? - làm cách nào để thay thế một số trong một chuỗi trong python?

Tôi muốn tạo một chuỗi mới bằng cách thay thế các chữ số bằng %d ví dụ:

Name.replace[ "_u1_v1" , "_u%d_v%d"] 

... Nhưng số

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
0 có thể là bất kỳ chữ số nào, ví dụ
>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
1

Tôi có thể cho

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
2 một ký tự đại diện để mong đợi bất kỳ chữ số nào không? Như
>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
3

Hay tôi phải tạo ra một biểu hiện thông thường?

Johnsyweb

Huy hiệu vàng 132K2323 gold badges179 silver badges242 bronze badges

hỏi ngày 29 tháng 9 năm 2013 lúc 23:23Sep 29, 2013 at 23:23

1

Sử dụng các biểu thức thông thường:

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
4 khớp với bất kỳ số 0-9.
>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
5 thay thế [các] số bằng %d

Đã trả lời ngày 29 tháng 9 năm 2013 lúc 23:24Sep 29, 2013 at 23:24

TerryaterryaTerryA

57.2K11 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng11 gold badges117 silver badges139 bronze badges

Bạn không thể;

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
7 chỉ làm việc với văn bản theo nghĩa đen.

Để thay thế các mẫu, hãy sử dụng các biểu thức thông thường:

re.sub[r'_u\d_v\d', '_u%d_v%d', inputtext]

Demo:

>>> import re
>>> inputtext = '42_u2_v3.txt'
>>> re.sub[r'_u\d_v\d', '_u%d_v%d', inputtext]
'42_u%d_v%d.txt'

Đã trả lời ngày 29 tháng 9 năm 2013 lúc 23:24Sep 29, 2013 at 23:24

TerryaterryaMartijn Pieters

57.2K11 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng277 gold badges3910 silver badges3256 bronze badges

Bạn không thể;

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
7 chỉ làm việc với văn bản theo nghĩa đen.

>>> s = "_u1_v1"
>>> ''.join["%d" if c.isdigit[] else c for c in s]
'_u%d_v%d'

Để thay thế các mẫu, hãy sử dụng các biểu thức thông thường:

>>> from itertools import groupby, chain
>>> s = "_u1_v13"
>>> grouped = groupby[s, str.isdigit]
>>> ''.join[chain.from_iterable["%d" if k else g for k,g in grouped]]
'_u%d_v%d'

Martijn Pieters ♦ Martijn Pieters

992K277 Huy hiệu vàng3910 Huy hiệu bạc3256 Huy hiệu đồngSep 29, 2013 at 23:30

Chỉ cho sự đa dạng, một số phương pháp không phải là REGEX:DSM

Hoặc nếu bạn cần nhóm nhiều chữ số:62 gold badges574 silver badges481 bronze badges

.

remove_digits = str.maketrans['0123456789', '%%%%%%%%%%']
'_u1_v1'.translate[remove_digits]  # '_u%_v%'

Đã trả lời ngày 29 tháng 9 năm 2013 lúc 23:30Dec 4, 2019 at 23:30

DSMDSMLoMaPh

328K62 Huy hiệu vàng574 Huy hiệu bạc481 Huy hiệu Đồng2 gold badges17 silver badges31 bronze badges

Một giải pháp sử dụng

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
8 [nguồn]:

from string import digits
remove_digits = str.maketrans['', '', digits]
str = str.translate[remove_digits]

Đã trả lời ngày 4 tháng 12 năm 2019 lúc 23:30

LomaphlomaphApr 25, 2020 at 16:16

1.2062 huy hiệu vàng17 Huy hiệu bạc31 Huy hiệu đồngAhmed

Nếu bạn muốn xóa tất cả các chữ số trong chuỗi, bạn có thể thực hiện bằng cách sử dụng

>>> import re
>>> s = "_u1_v1"
>>> print re.sub['\d', '%d', s]
_u%d_v%d
8 [xóa số khỏi chuỗi]:7 bronze badges

temp = re.findall[r'\d+', text] 
res = list[map[int, temp]]

for numText in res:
    text = text.replace[str[numText], str[numText]+'U']

Tất cả tín dụng được chuyển đến @lomaphApr 15, 2020 at 7:24

2

Làm cách nào để thay thế một số trong một chuỗi?

Để thay thế tất cả các số trong một chuỗi, hãy gọi phương thức thay thế [], chuyển nó một biểu thức thông thường phù hợp với tất cả các số là tham số đầu tiên và chuỗi thay thế là thứ hai. Phương thức thay thế sẽ trả về một chuỗi mới với tất cả các trận đấu được thay thế bằng cách thay thế được cung cấp.call the replace[] method, passing it a regular expression that globally matches all numbers as the first parameter and the replacement string as the second. The replace method will return a new string with all matches replaced by the provided replacement.

Làm thế nào để bạn thay thế một phần cụ thể của chuỗi trong Python?

Trong Python, phương thức .replace [] và hàm re.sub [] thường được sử dụng để làm sạch văn bản bằng cách loại bỏ các chuỗi hoặc chuỗi con hoặc thay thế chúng.the . replace[] method and the re. sub[] function are often used to clean up text by removing strings or substrings or replacing them.

Làm thế nào để bạn thay thế một giá trị trong Python?

Chức năng thay thế [] được sử dụng để thay thế một chuỗi, regex, danh sách, từ điển, sê -ri, số, v.v. từ khung dữ liệu gấu trúc trong Python.Mỗi phiên bản của giá trị được cung cấp được thay thế sau khi tìm kiếm kỹ lưỡng về Full DataFrame.

Làm thế nào để bạn thay thế một ký tự trong một chuỗi trong Python?

Phương thức thay thế [] giúp thay thế sự xuất hiện của ký tự cũ đã cho bằng ký tự hoặc chuỗi con mới.Phương thức chứa các tham số như cũ [một ký tự mà bạn muốn thay thế], mới [một ký tự mới bạn muốn thay thế] và đếm [một số lần bạn muốn thay thế ký tự]. helps to replace the occurrence of the given old character with the new character or substring. The method contains the parameters like old[a character that you wish to replace], new[a new character you would like to replace with], and count[a number of times you want to replace the character].

Chủ Đề