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

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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

Aran-Fey

36,9k11 Huy hiệu vàng97 Huy hiệu bạc141 Huy hiệu đồng11 gold badges97 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.6K29 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.5392 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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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?14 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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

89.6K29 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.5392 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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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).6 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.1k14 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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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 extract a substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

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 substring from a string in python regex? - làm thế nào để bạn trích xuất một chuỗi con từ một chuỗi trong python regex?

MAXLZMAXLZMaxLZ

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

Làm thế nào để bạn tìm thấy một chuỗi con trong Regex Python?

Các bước phù hợp với biểu thức chính quy..
Nhập mô -đun Regex với Nhập RE ..
Tạo một đối tượng Regex với Re.biên dịch () hàm.....
Chuyển chuỗi bạn muốn tìm kiếm vào phương thức tìm kiếm () của Regex đối tượng.....
Gọi phương thức nhóm của đối tượng () để trả về một chuỗi của văn bản phù hợp thực tế ..

Làm thế nào để bạn nhận được một chuỗi con từ một chuỗi?

Phương thức chuỗi con () trích xuất các ký tự, giữa hai chỉ số (vị trí), từ một chuỗi và trả về chuỗi con.Phương thức chuỗi con () trích xuất các ký tự từ đầu đến cuối (độc quyền).Phương thức chuỗi con () không thay đổi chuỗi gốc.. The substring() method extracts characters from start to end (exclusive). The substring() method does not change the original string.

Làm thế nào để bạn thay thế một chuỗi con từ một chuỗi trong Python Regex?

Để thay thế một chuỗi trong Python, phương thức Regex Sub () được sử dụng.Đây là một phương thức Python tích hợp trong mô-đun RE trả về chuỗi thay thế.Đừng quên nhập mô -đun lại.Phương thức này tìm kiếm mẫu trong chuỗi và sau đó thay thế nó bằng một biểu thức mới được cho.the regex sub() method is used. It is a built-in Python method in re module that returns replaced string. Don't forget to import the re module. This method searches the pattern in the string and then replace it with a new given expression.