Hướng dẫn separate numbers from text in python - tách các số khỏi văn bản 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 separate numbers from text in python - tách các số khỏi văn bản 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 separate numbers from text in python - tách các số khỏi văn bản 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.4K34 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 separate numbers from text in python - tách các số khỏi văn bản trong python

Giorgos Xou

1.0411 huy hiệu vàng8 Huy hiệu bạc23 Huy hiệu đồng1 gold badge8 silver badges23 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

385K183 Huy hiệu vàng949 Huy hiệu bạc1624 Huy hiệu đồng183 gold badges949 silver badges1624 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.4K34 Huy hiệu vàng104 Huy hiệu bạc117 Huy hiệu đồng

Giorgos XouJan 9, 2009 at 23:40

1.0411 huy hiệu vàng8 Huy hiệu bạc23 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 separate numbers from text in python - tách các số khỏi văn bản 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

385K183 Huy hiệu vàng949 Huy hiệu bạc1624 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 separate numbers from text in python - tách các số khỏi văn bản trong python

Nikaido

4.1465 Huy hiệu vàng32 Huy hiệu bạc44 Huy hiệu đồng18 gold badges31 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 separate numbers from text in python - tách các số khỏi văn bản 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 separate numbers from text in python - tách các số khỏi văn bản trong python

Làm thế nào để bạn tách dữ liệu khỏi văn bản trong Python?

Chúng ta có thể sử dụng một vòng lặp để lặp qua nội dung của tệp dữ liệu sau khi mở nó bằng câu lệnh 'với' của Python. Sau khi đọc dữ liệu, phương thức Split () được sử dụng để chia văn bản thành các từ. Phương thức chia () theo mặc định phân tách văn bản bằng khoảng trắng.use a for loop to iterate through the contents of the data file after opening it with Python's 'with' statement. After reading the data, the split() method is used to split the text into words. The split() method by default separates text using whitespace.

Làm cách nào để tách một số khỏi một chuỗi?

Xác định độ dài của chuỗi ..
Quét riêng từng ký tự (CH) trong một chuỗi.Thêm nó vào chuỗi res1 nếu (CH là một chữ số).....
In mỗi chuỗi.Chúng ta sẽ có ba chuỗi: một chuỗi có thành phần số, một không có thành phần số và một chuỗi có ký tự đặc biệt ...

Làm thế nào để bạn tách số trong Python?

Để chia số nguyên thành các chữ số: Sử dụng lớp str () để chuyển đổi số nguyên thành chuỗi. Sử dụng vòng lặp để lặp qua chuỗi..Use the str() class to convert the integer to a string. Use a for loop to iterate over the string. Use the int() class to convert each substring to an integer and append them to a list.

Làm thế nào để bạn trích xuất một số từ một chuỗi trong Python?

Tóm tắt: Để trích xuất số từ một chuỗi đã cho trong Python, bạn có thể sử dụng một trong các phương thức sau:..
Sử dụng mô -đun Regex ..
Sử dụng các hàm split () và append () trong danh sách ..
Sử dụng danh sách hiểu với các hàm isDigit () và split () ..
Sử dụng mô -đun Num_From_String ..