Hướng dẫn how do you grab part of a string in python? - làm thế nào để bạn lấy một phần của một chuỗi trong python?

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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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

Sử dụng pyparsingSep 4, 2020 at 11:16

Hướng dẫn how do you grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 grab part of a string in python? - làm thế nào để bạn lấy một phần của 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 chọn một phần của chuỗi trong Python?

Giống như các mảng và danh sách trong Python, các chuỗi có thể được cắt lát bằng cách chỉ định các chỉ số bắt đầu và cuối, bên trong dấu ngoặc vuông và được phân tách bằng một dấu hai chấm. Điều này trả về một chuỗi con của chuỗi ban đầu.specifying the start and the end indexes, inside square brackets and separated by a colon. This returns a substring of the original string.

Làm thế nào để bạn lấy một phần cụ thể của một chuỗi?

Phương thức chuỗi con () trích xuất một phần của chuỗi.Phương thức Subr () bắt đầu ở một vị trí được chỉ định và trả về một số ký tự được chỉ định.Phương thức Subr () không thay đổi chuỗi gốc.Để trích xuất các ký tự từ cuối chuỗi, hãy sử dụng vị trí bắt đầu âm.. The substr() method begins at a specified position, and returns a specified number of characters. The substr() method does not change the original string. To extract characters from the end of the string, use a negative start position.

Làm thế nào để bạn cắt một phần của chuỗi trong Python?

Cắt các chuỗi Bạn có thể trả về một loạt các ký tự bằng cách sử dụng cú pháp lát cắt.Chỉ định chỉ mục bắt đầu và chỉ mục cuối, được phân tách bằng một dấu hai chấm, để trả về một phần của chuỗi.Specify the start index and the end index, separated by a colon, to return a part of the string.

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

Để tìm một từ trong chuỗi, chúng tôi đang sử dụng các phương thức indexof () và chứa () của lớp chuỗi.Phương thức indexof () được sử dụng để tìm một chỉ mục của chuỗi con được chỉ định trong chuỗi hiện tại.Nó trả về một số nguyên dương dưới dạng một chỉ mục nếu cơ sở tìm thấy khác trả về -1.using indexOf() and contains() methods of String class. The indexOf() method is used to find an index of the specified substring in the present string. It returns a positive integer as an index if substring found else returns -1.