Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi 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?

Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi python

Johnsyweb

Huy hiệu vàng 132K2323 gold badges179 silver badges243 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

Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi python

TerryaterryaTerryA

57.3K11 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.3K11 Huy hiệu vàng117 Huy hiệu bạc139 Huy hiệu đồng277 gold badges3915 silver badges3258 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

994K277 Huy hiệu vàng3915 Huy hiệu bạc3258 Huy hiệu đồngSep 29, 2013 at 23:30

Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi python

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

Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi python

DSMDSMLoMaPh

329K62 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

Hướng dẫn replace numbers in string python - thay thế các số trong chuỗi python

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 trong Python?

Phương thức số 1: Sử dụng thay thế () + isDigit () Trong này, chúng tôi kiểm tra số bằng isDigit () và thay thế () được sử dụng để thực hiện nhiệm vụ thay thế các số bằng K.Using replace() + isdigit() In this, we check for numerics using isdigit() and replace() is used to perform the task of replacing the numbers by K.

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 số bằng một số khác trong Python?

Thay thế () tham số Phương thức thay thế () có thể mất tối đa 3 tham số: Cựu Ước - Subring cũ bạn muốn thay thế.Mới - Chất nền mới sẽ thay thế cho chuỗi con cũ.Đếm (Tùy chọn) - Số lần bạn muốn thay thế bộ con cũ bằng bộ nền mới. Parameters The replace() method can take maximum of 3 parameters: old - old substring you want to replace. new - new substring which will replace the old substring. count (optional) - the number of times you want to replace the old substring with the new substring.

Làm cách nào để loại bỏ số từ một chuỗi trong Python?

Trong Python, một hàm phụ () có sẵn trong mô -đun regex để xóa số khỏi chuỗi Python.Phương thức Sub () thay thế tất cả các tồn tại của thứ tự đã cho trong chuỗi bằng cách sử dụng chuỗi thay thế.an inbuilt function sub() is present in the regex module to delete numbers from the Python string. The sub() method replaces all the existences of the given order in the string using a replacement string.