Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

490

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Giả sử tôi có một chuỗi

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
8 và tôi muốn trích xuất chỉ phần
import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
9.

Tôi chỉ biết những gì sẽ là một vài ký tự trực tiếp trước

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
0, và sau
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
1 phần tôi quan tâm đến
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
2.

Với

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
3 có thể làm một cái gì đó như thế này với một chuỗi:

echo "$STRING" | sed -e "s|.*AAA\(.*\)ZZZ.*|\1|"

Và điều này sẽ cho tôi

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
2 do đó.

Làm thế nào để làm điều tương tự trong Python?

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

Aran-Fey

36.8k11 Huy hiệu vàng96 Huy hiệu bạc141 Huy hiệu đồng11 gold badges96 silver badges141 bronze badges

hỏi ngày 12 tháng 1 năm 2011 lúc 9:14Jan 12, 2011 at 9:14

1

Sử dụng biểu thức chính quy - Tài liệu để tham khảo thêm

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234

or:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234

CDMP

3004 Huy hiệu bạc9 Huy hiệu Đồng4 silver badges9 bronze badges

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

Eumiroeumiroeumiro

199K34 Huy hiệu vàng294 Huy hiệu bạc259 Huy hiệu Đồng34 gold badges294 silver badges259 bronze badges

13

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'

Sau đó, bạn cũng có thể sử dụng RegEXP với mô -đun RE, nếu bạn muốn, nhưng điều đó không cần thiết trong trường hợp của bạn.

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

Lennart Regebrolennart RegebroLennart Regebro

162K41 Huy hiệu vàng221 Huy hiệu bạc251 Huy hiệu Đồng41 gold badges221 silver badges251 bronze badges

5

biểu hiện thông thường

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)

Trên đây sẽ không thành công với

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
5 nếu không có "AAA" và "ZZZ" trong
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
6

Phương thức chuỗi

your_text.partition("AAA")[2].partition("ZZZ")[0]

Trên đây sẽ trả về một chuỗi trống nếu "AAA" hoặc "ZZZ" không tồn tại trong

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
6.

Thử thách Python Python?

Đã trả lời ngày 6 tháng 2 năm 2011 lúc 23:43Feb 6, 2011 at 23:43

Tzottzottzot

89.5K29 Huy hiệu vàng138 Huy hiệu bạc201 Huy hiệu đồng29 gold badges138 silver badges201 bronze badges

4

Ngạc nhiên vì không ai đề cập đến điều này, đó là phiên bản nhanh của tôi cho các tập lệnh một lần:

>>> x = 'gfgfdAAA1234ZZZuijjk'
>>> x.split('AAA')[1].split('ZZZ')[0]
'1234'

Đã trả lời ngày 9 tháng 2 năm 2019 lúc 16:57Feb 9, 2019 at 16:57

Chú dài tóc tóc dàiUncle Long Hair

2.5292 Huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu Đồng2 gold badges22 silver badges31 bronze badges

3

bạn có thể làm chỉ bằng một dòng mã

>>> import re

>>> re.findall(r'\d{1,5}','gfgfdAAA1234ZZZuijjk')

>>> ['1234']

Kết quả sẽ nhận được danh sách ...

Đã trả lời ngày 11 tháng 1 năm 2018 lúc 11:39Jan 11, 2018 at 11:39

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

Mahesh Guptamahesh GuptaMahesh Gupta

1.84611 huy hiệu bạc15 huy hiệu đồng11 silver badges15 bronze badges

import re
print re.search('AAA(.*?)ZZZ', 'gfgfdAAA1234ZZZuijjk').group(1)

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

Eumiroeumiroinfrared

199K34 Huy hiệu vàng294 Huy hiệu bạc259 Huy hiệu Đồng2 gold badges23 silver badges37 bronze badges

1

Sau đó, bạn cũng có thể sử dụng RegEXP với mô -đun RE, nếu bạn muốn, nhưng điều đó không cần thiết trong trường hợp của bạn.

>>> import re
>>> re.compile(".*AAA(.*)ZZZ.*").match("gfgfdAAA1234ZZZuijjk").groups()
('1234,)

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

Lennart Regebrolennart Regebroandreypopp

162K41 Huy hiệu vàng221 Huy hiệu bạc251 Huy hiệu Đồng5 gold badges26 silver badges26 bronze badges

0

biểu hiện thông thường

Trên đây sẽ không thành công với
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
5 nếu không có "AAA" và "ZZZ" trong
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
6

Phương thức chuỗiMar 14, 2018 at 9:11

Trên đây sẽ trả về một chuỗi trống nếu "AAA" hoặc "ZZZ" không tồn tại trong

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
6.rashok

Thử thách Python Python?13 gold badges85 silver badges97 bronze badges

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
1

Đã trả lời ngày 6 tháng 2 năm 2011 lúc 23:43

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
2

TzottzotMar 4, 2019 at 1:31

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

1

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
3

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

89.5K29 Huy hiệu vàng138 Huy hiệu bạc201 Huy hiệu đồngFeb 8, 2014 at 0:12

Ngạc nhiên vì không ai đề cập đến điều này, đó là phiên bản nhanh của tôi cho các tập lệnh một lần:

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
0

Đã trả lời ngày 9 tháng 2 năm 2019 lúc 16:57

Chú dài tóc tóc dài

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
4

2.5292 Huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu Đồng

bạn có thể làm chỉ bằng một dòng mãJan 31, 2015 at 8:29

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

Kết quả sẽ nhận được danh sách ...Avinash Raj

Đã trả lời ngày 11 tháng 1 năm 2018 lúc 11:3925 gold badges215 silver badges262 bronze badges

Mahesh Guptamahesh Gupta

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
5

1.84611 huy hiệu bạc15 huy hiệu đồngJun 18, 2021 at 19:20

2

TIỀN THƯỞNG

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
6

3,4082 Huy hiệu vàng23 Huy hiệu bạc37 Huy hiệu đồngOct 14, 2017 at 9:22

Bạn có thể sử dụng mô -đun RE cho điều đó:

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
7

Đã trả lời ngày 12 tháng 1 năm 2011 lúc 9:19

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
5

AndreypoppandreypoppJan 8, 2020 at 23:03

6.7875 huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồngRaphael

Trong Python, việc trích xuất chuỗi hình thức chuỗi con có thể được thực hiện bằng phương pháp

>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
8 trong mô -đun biểu thức chính quy (
>>> s = 'gfgfdAAA1234ZZZuijjk'
>>> start = s.find('AAA') + 3
>>> end = s.find('ZZZ', start)
>>> s[start:end]
'1234'
9).5 silver badges20 bronze badges

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
0

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
8

Đã trả lời ngày 14 tháng 3 năm 2018 lúc 9:11

Rashokrashok

12.1k13 Huy hiệu vàng85 Huy hiệu bạc97 Huy hiệu đồngJan 19, 2014 at 19:29

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

ChoDenis Kutlubaev

Đã trả lời ngày 4 tháng 3 năm 2019 lúc 1:316 gold badges80 silver badges68 bronze badges

Đã trả lời ngày 8 tháng 2 năm 2014 lúc 0:12

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234
9

Với SED, có thể làm một cái gì đó như thế này với một chuỗi:Feb 23, 2019 at 18:26

Và điều này sẽ cho tôi 1234 do đó.Foobar

Bạn có thể làm tương tự với chức năng

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
1 bằng cách sử dụng cùng một regex.14 gold badges67 silver badges142 bronze badges

Trong SED cơ bản, nhóm bắt giữ được đại diện bởi

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
2, nhưng trong Python, nó được đại diện bởi
import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
3.

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
0

Đã trả lời ngày 31 tháng 1 năm 2015 lúc 8:29Oct 12, 2019 at 0:30

Avinash Rajavinash RajJulio S.

169K25 Huy hiệu vàng215 Huy hiệu bạc262 Huy hiệu Đồng1 gold badge10 silver badges20 bronze badges

Một lớp lót với Python 3.8 nếu

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
4 được đảm bảo có chứa nền tảng:

Đã trả lời ngày 18 tháng 6 năm 2021 lúc 19:20

Bạn có thể tìm thấy phần đầu tiên với chức năng này trong mã của bạn (theo chỉ mục ký tự). Ngoài ra, bạn có thể tìm thấy những gì sau khi một nền tảng.

Đã trả lời ngày 14 tháng 10 năm 2017 lúc 9:22

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
1

Đã trả lời ngày 4 tháng 9 năm 2020 lúc 11:16Sep 4, 2020 at 11:16

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

Sergey Gurinsergey GurinSergey Gurin

1.39814 Huy hiệu bạc13 Huy hiệu đồng14 silver badges13 bronze badges

Ngoài ra, bạn có thể tìm thấy tất cả các kết hợp trong hàm dưới

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
2

result:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
3

Đã trả lời ngày 5 tháng 10 năm 2021 lúc 19:02Oct 5, 2021 at 19:02

Yunusyunusyunus

Phim huy hiệu bạc 211 Huy hiệu đồng1 silver badge8 bronze badges

Trong trường hợp bạn muốn tìm kiếm nhiều lần xảy ra.

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
4

Hoặc nhanh hơn:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
5

Đã trả lời ngày 2 tháng 8 lúc 13:28Aug 2 at 13:28

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

Một lớp lót trả về chuỗi khác nếu không có khớp. Chỉnh sửa: Phiên bản cải tiến sử dụng hàm

import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
7, thay thế
import re

re.search(r"(?<=AAA).*?(?=ZZZ)", your_text).group(0)
8 bằng một cái gì đó khác nếu cần:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
6

Phương pháp khác của tôi để làm điều này, ít tối ưu hơn, sử dụng Regex lần thứ 2, vẫn chưa tìm thấy một cách ngắn hơn:

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # apply your error handling

# found: 1234
7

Đã trả lời ngày 7 tháng 12 năm 2017 lúc 0:55Dec 7, 2017 at 0:55

Hướng dẫn how do you extract a string in python? - làm thế nào để bạn trích xuất một chuỗi trong python?

MAXLZMAXLZMaxLZ

791 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

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.

Làm cách nào để trích xuất một từ cụ thể từ một chuỗi trong Python?

Phương pháp số 1: Sử dụng split () Sử dụng hàm chia, chúng ta có thể chia chuỗi thành một danh sách các từ và đây là phương thức chung và được đề xuất nhất nếu người ta muốn hoàn thành nhiệm vụ cụ thể này.Using split() Using the split function, we can split the string into a list of words and this is the most generic and recommended method if one wished to accomplish this particular task.

Làm cách nào để trích xuất văn bản từ một nhân vật trong Python?

Sử dụng Split () để có được chuỗi sau khi xuất hiện chuỗi con đã cho.Hàm phân chia cũng có thể được áp dụng để thực hiện nhiệm vụ cụ thể này, trong chức năng này, chúng tôi sử dụng sức mạnh của việc giới hạn phân chia và sau đó in chuỗi sau.. The split function can also be applied to perform this particular task, in this function, we use the power of limiting the split and then print the later string.