Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

Tôi muốn phân tách các chuỗi như thế này

'foofo21'
'bar432'
'foobar12345'

vào trong

['foofo', '21']
['bar', '432']
['foobar', '12345']

Có ai đó biết một cách dễ dàng và đơn giản để làm điều này trong Python?

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

hỏi ngày 9 tháng 1 năm 2009 lúc 23:02Jan 9, 2009 at 23:02

Tôi sẽ tiếp cận điều này bằng cách sử dụng

['foofo', '21']
['bar', '432']
['foobar', '12345']
7 theo cách sau:

import re
match = re.match(r"([a-z]+)([0-9]+)", 'foofo21', re.I)
if match:
    items = match.groups()
print(items)
>> ("foofo", "21")

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:12Jan 9, 2009 at 23:12

Evan Fosmarkevan FosmarkEvan Fosmark

96.6K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng34 gold badges104 silver badges117 bronze badges

8

def mysplit(s):
    head = s.rstrip('0123456789')
    tail = s[len(head):]
    return head, tail
>>> [mysplit(s) for s in ['foofo21', 'bar432', 'foobar12345']]
[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

Giorgos Xou

1.0711 huy hiệu vàng9 Huy hiệu bạc25 Huy hiệu đồng1 gold badge9 silver badges25 bronze badges

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 6:17Jan 10, 2009 at 6:17

MikemikeMike

1.0366 huy hiệu bạc7 huy hiệu đồng6 silver badges7 bronze badges

7

Một lựa chọn khác:

>>> [re.split(r'(\d+)', s) for s in ('foofo21', 'bar432', 'foobar12345')]
[['foofo', '21', ''], ['bar', '432', ''], ['foobar', '12345', '']]

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 0:54Jan 10, 2009 at 0:54

JFSJFSjfs

386K183 Huy hiệu vàng950 Huy hiệu bạc1626 Huy hiệu Đồng183 gold badges950 silver badges1626 bronze badges

2

>>> r = re.compile("([a-zA-Z]+)([0-9]+)")
>>> m = r.match("foobar12345")
>>> m.group(1)
'foobar'
>>> m.group(2)
'12345'

Vì vậy, nếu bạn có một danh sách các chuỗi có định dạng đó:

import re
r = re.compile("([a-zA-Z]+)([0-9]+)")
strings = ['foofo21', 'bar432', 'foobar12345']
print [r.match(string).groups() for string in strings]

Output:

[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:12Jan 9, 2009 at 23:12

0

Evan Fosmarkevan Fosmark

>>> strings = ['foofo21', 'bar432', 'foobar12345']
>>> [re.findall(r'(\w+?)(\d+)', s)[0] for s in strings]
[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]

96.6K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng

Giorgos XouJan 9, 2009 at 23:40

1.0711 huy hiệu vàng9 Huy hiệu bạc25 Huy hiệu đồngPEZ

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 6:177 gold badges42 silver badges65 bronze badges

3

Mikemike

['foofo', '21']
['bar', '432']
['foobar', '12345']
0

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

1.0366 huy hiệu bạc7 huy hiệu đồng

Một lựa chọn khác:5 gold badges32 silver badges44 bronze badges

Đã trả lời ngày 10 tháng 1 năm 2009 lúc 0:54Aug 5, 2019 at 13:44

JFSJFSBryo Much

386K183 Huy hiệu vàng950 Huy hiệu bạc1626 Huy hiệu Đồng1 silver badge2 bronze badges

['foofo', '21']
['bar', '432']
['foobar', '12345']
1

Vì vậy, nếu bạn có một danh sách các chuỗi có định dạng đó:Nov 19, 2015 at 19:28

Tôi luôn là người đưa ra findall () =)

['foofo', '21']
['bar', '432']
['foobar', '12345']
2

Lưu ý rằng tôi đang sử dụng Regex đơn giản hơn (ít hơn để loại) so với hầu hết các câu trả lời trước đó.

['foofo', '21']
['bar', '432']
['foobar', '12345']
3

Đã trả lời ngày 9 tháng 1 năm 2009 lúc 23:40Apr 25, 2019 at 6:27

Pezpez

['foofo', '21']
['bar', '432']
['foobar', '12345']
4

16.6K7 Huy hiệu vàng42 Huy hiệu bạc65 Huy hiệu ĐồngOct 8, 2020 at 12:38

Dưới đây là một hàm đơn giản để tách rời nhiều từ và số từ một chuỗi có độ dài nào, phương thức RE chỉ tách biệt hai từ và số đầu tiên. Tôi nghĩ rằng điều này sẽ giúp mọi người khác trong tương lai,

['foofo', '21']
['bar', '432']
['foobar', '12345']
5

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

Nikaido

4.1465 Huy hiệu vàng32 Huy hiệu bạc44 Huy hiệu đồng18 gold badges32 silver badges52 bronze badges

Đã trả lời ngày 5 tháng 8 năm 2019 lúc 13:44Sep 22, 2019 at 18:27

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?

1

Bryo Manybryo nhiều

['foofo', '21']
['bar', '432']
['foobar', '12345']
6

811 Huy hiệu bạc2 Huy hiệu đồng

Đã trả lời ngày 19 tháng 11 năm 2015 lúc 19:28May 18 at 18:42

Hướng dẫn how do you split a string and number in python? - làm thế nào để bạn tách một chuỗi và số trong python?