Hướng dẫn extract string from string python - trích xuất chuỗi từ chuỗi python

Bài viết này mô tả cách trích xuất một chuỗi con từ một chuỗi trong Python. Bạn có thể trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự hoặc với các mẫu biểu thức chính quy.

  • Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
    • Trích xuất một ký tự bằng chỉ mục
    • Trích xuất một chuỗi con bằng cách cắt
    • Trích xuất dựa trên số lượng ký tự
  • Trích xuất một chuỗi con với các biểu thức thông thường:
    # print(s[5])
    # IndexError: string index out of range
    
    # print(s[-6])
    # IndexError: string index out of range
    
    2,
    # print(s[5])
    # IndexError: string index out of range
    
    # print(s[-6])
    # IndexError: string index out of range
    
    3
  • Ví dụ mẫu biểu thức thông thường
    • Các mẫu giống như ký tự đại diện
    • Tham lam và không tham lam
    • Trích xuất một phần của mẫu với dấu ngoặc đơn
    • Khớp với bất kỳ ký tự nào
    • Khớp với đầu/kết thúc của chuỗi
    • Trích xuất bởi nhiều mẫu
    • Case-insensitive

Nếu bạn muốn thay thế một chuỗi con bằng một chuỗi khác, hãy xem bài viết sau.

  • Thay thế các chuỗi trong python (thay thế, dịch, re.sub, re.sub)

Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự

Bạn có thể nhận được một ký tự ở vị trí mong muốn bằng cách chỉ định một chỉ mục trong

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
4. Các chỉ mục bắt đầu bằng
# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
5 (lập chỉ mục dựa trên không).

s = 'abcde'

print(s[0])
# a

print(s[4])
# e

Bạn có thể chỉ định một vị trí lạc hậu với các giá trị âm.

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
6 đại diện cho nhân vật cuối cùng.

print(s[-1])
# e

print(s[-5])
# a

Một lỗi được nêu ra nếu chỉ số không tồn tại được chỉ định.

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range

Bạn có thể trích xuất một chuỗi con trong phạm vi

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
7 với
# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
8. Nếu
# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
9 bị bỏ qua, phạm vi là từ đầu và nếu
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
0 bị bỏ qua, phạm vi sẽ đến cuối cùng.

s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde

Bạn cũng có thể sử dụng các giá trị âm.

print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde

Nếu

s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
1, không có lỗi nào được nêu ra và một ký tự trống
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
2 được trích xuất.

print(s[3:1])
# 

print(s[3:1] == '')
# True

Ngoài phạm vi bị bỏ qua.

print(s[-100:100])
# abcde

Ngoài vị trí bắt đầu

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
9 và vị trí cuối
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
4, bạn có thể chỉ định mức tăng
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
5 như
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
6. Nếu
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
5 là âm, nó được trích xuất từ ​​phía sau.

print(s[1:4:2])
# bd

print(s[::2])
# ace

print(s[::3])
# ad

print(s[::-1])
# edcba

print(s[::-2])
# eca

Để biết thêm thông tin về việc cắt, xem bài viết sau.

  • Cách cắt một danh sách, chuỗi, tuple trong Python

Hàm tích hợp

s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
8 trả về số lượng ký tự. Ví dụ: bạn có thể sử dụng điều này để lấy ký tự trung tâm hoặc trích xuất nửa đầu hoặc thứ hai của chuỗi bằng cách cắt.

Lưu ý rằng bạn chỉ có thể chỉ định các giá trị số nguyên

s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
9 cho chỉ mục
# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
4 và cắt
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
1. Phân chia theo
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
2 gây ra lỗi vì kết quả là số điểm nổi
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
3.

Ví dụ sau sử dụng Phân chia số nguyên

print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
4. Điểm thập phân bị cắt ngắn.

s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi

Bạn có thể sử dụng các biểu thức chính quy với mô -đun RE của thư viện tiêu chuẩn.

  • Re - Hoạt động biểu thức thông thường - Tài liệu Python 3.10.4

Sử dụng

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
2 để trích xuất một chuỗi con phù hợp với mẫu biểu thức chính quy. Chỉ định mẫu biểu thức chính quy là tham số đầu tiên và chuỗi đích là tham số thứ hai.

import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 

print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
6 khớp với ký tự chữ số và
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
7 khớp với một hoặc nhiều lần lặp lại của mẫu trước. Do đó,
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
8 khớp với một hoặc nhiều chữ số liên tiếp.

Vì Backslash

print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
9 được sử dụng trong các chuỗi đặc biệt biểu thức thông thường như
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
6, nên việc sử dụng một chuỗi thô là thuận tiện bằng cách thêm
print(s[3:1])
# 

print(s[3:1] == '')
# True
1 trước
s = 'abcde'

print(s[1:3])
# bc

print(s[:3])
# abc

print(s[1:])
# bcde
2 hoặc
print(s[3:1])
# 

print(s[3:1] == '')
# True
3.

  • Dây thô trong Python

Khi một chuỗi khớp với mẫu,

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
2 sẽ trả về một đối tượng khớp. Bạn có thể nhận phần phù hợp dưới dạng chuỗi
print(s[3:1])
# 

print(s[3:1] == '')
# True
5 bằng phương thức
print(s[3:1])
# 

print(s[3:1] == '')
# True
6 của đối tượng khớp.

print(s[-1])
# e

print(s[-5])
# a
0

Như trong ví dụ trên,

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
2 chỉ trả về đối tượng khớp của phần đầu tiên, ngay cả khi có nhiều phần phù hợp.

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
3 Trả về tất cả các phần phù hợp như một danh sách các chuỗi.

print(s[-1])
# e

print(s[-5])
# a
1

Ví dụ mẫu biểu thức thông thường

Các mẫu giống như ký tự đại diện

Các mẫu giống như ký tự đại diện

Tham lam và không tham lam

Trích xuất một phần của mẫu với dấu ngoặc đơn

print(s[-1])
# e

print(s[-5])
# a
2

Khớp với bất kỳ ký tự nào

print(s[-1])
# e

print(s[-5])
# a
3

Khớp với đầu/kết thúc của chuỗi

print(s[-1])
# e

print(s[-5])
# a
4

Tham lam và không tham lam

Trích xuất một phần của mẫu với dấu ngoặc đơn

print(s[-1])
# e

print(s[-5])
# a
5

Khớp với bất kỳ ký tự nào

print(s[-1])
# e

print(s[-5])
# a
6

Nếu bạn muốn phù hợp với dấu ngoặc đơn

s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
0 với tư cách là nhân vật, hãy thoát chúng bằng dấu gạch chéo ngược
print(s[-4:-2])
# bc

print(s[:-2])
# abc

print(s[-4:])
# bcde
9.

print(s[-1])
# e

print(s[-5])
# a
7

Khớp với bất kỳ ký tự nào

Việc kèm theo một chuỗi với

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
4 khớp với bất kỳ một trong các ký tự trong chuỗi.

Nếu bạn kết nối các điểm mã Unicode liên tiếp với

s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
4, chẳng hạn như
s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
5, tất cả các ký tự giữa chúng đều được bảo hiểm. Ví dụ,
s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
5 khớp với bất kỳ một ký tự nào của bảng chữ cái viết thường.

print(s[-1])
# e

print(s[-5])
# a
8

Khớp với đầu/kết thúc của chuỗi

s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
7 khớp với sự khởi đầu của chuỗi và
s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
8 khớp với phần cuối của chuỗi.

print(s[-1])
# e

print(s[-5])
# a
9

Sử dụng

s = 'abcdefghi'

print(len(s))
# 9

# print(s[len(s) / 2])
# TypeError: string indices must be integers

print(s[len(s) // 2])
# e

print(s[:len(s) // 2])
# abcd

print(s[len(s) // 2:])
# efghi
9 để trích xuất một chuỗi con phù hợp với một trong nhiều mẫu. Ví dụ: đối với các mẫu biểu thức thông thường
import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 
0 và
import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 
1, bạn có thể viết
import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 
2.

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
0

Case-insensitive

Mô-đun RE là nhạy cảm trường hợp theo mặc định. Đặt đối số

import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 
3 thành
import re

s = '012-3456-7890'

print(re.search(r'\d+', s))
# 
4 để thực hiện không nhạy cảm trường hợp.

# print(s[5])
# IndexError: string index out of range

# print(s[-6])
# IndexError: string index out of range
1

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

Nhận một chuỗi con của một chuỗi đang trích xuất một phần của chuỗi từ một đối tượng chuỗi. Nó cũng được gọi là một hoạt động cắt lát. Bạn có thể nhận được chuỗi con của một chuỗi trong Python bằng tùy chọn STR [0: N].using the str[0:n] option.

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

Bạn gọi phương thức Subring (Int32) để trích xuất một chuỗi con từ một chuỗi bắt đầu ở một vị trí ký tự được chỉ định và kết thúc ở cuối chuỗi.Vị trí ký tự bắt đầu là dựa trên không;Nói cách khác, ký tự đầu tiên trong chuỗi là tại INDEX 0, không phải chỉ mục 1.call the Substring(Int32) method to extract a substring from a string that begins at a specified character position and ends at the end of the string. The starting character position is a zero-based; in other words, the first character in the string is at index 0, not index 1.

Bạn có thể cắt một chuỗi trong Python không?

Chuỗi Python hỗ trợ cắt lát để tạo chuỗi con.Lưu ý rằng chuỗi Python là bất biến, việc cắt tạo ra một chuỗi con mới từ chuỗi nguồn và chuỗi ban đầu không thay đổi.. Note that Python string is immutable, slicing creates a new substring from the source string and original string remains unchanged.

Làm cách nào để trích xuất một chuỗi trước một ký tự trong Python?

Sử dụng str.partition () để lấy phần của chuỗi trước khi xuất hiện đầu tiên của một ký tự cụ thể.Gọi str.Phân vùng (SEP) với SEP là ký tự mong muốn để có được một tuple chứa ba mục: mọi thứ trước lần xuất hiện đầu tiên của SEP trong STR, SEP và phần còn lại của STR, theo thứ tự đó. partition() to get the part of a string before the first occurrence of a specific character. Call str. partition(sep) with sep as the desired character to get a tuple containing three items: everything before the first occurrence of sep in str , sep , and the rest of str , in that order.