cuốn sách gpt4 ai đã làm

Phân tích văn bản bằng Python RegEx re.findall

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 10:13:21 26 4
mua khóa gpt4 Nike

Tôi có một chuỗi rất dài cần phân tích theo nhóm nhưng cần kiểm soát nhiều hơn.

import re

RAW_Data = "Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này* ((Bla Bla Bla (Bla Bla) A40 & A41)) Đặt tên Kiểm tra nhiều từ với 3456 số và nội dung này2* ((Bla Bla Bla (Bla Bla) A42 & A43)) Kiểm tra tên nhiều từ với 78910 số và nội dung này3* ((Bla Bla Bla (Bla Bla) A44 & A45)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này4* ((Bla Bla Bla (Bla Bla) A46 & A47)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này5* ((Bla Bla Bla (Bla Bla) A48 & A49)) Kiểm tra tên nhiều từ với 1234 số và nội dung này6* ((Bla Bla Bla (Bla Bla) A50 & A51)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này7* ((Bla Bla Bla (Bla Bla) A52 & A53)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này8* ((Bla Bla Bla (Bla Bla) A54 & A55)) Kiểm tra tên nhiều từ với 1234 số và nội dung này9* ((Bla Bla Bla (Bla Bla) A56 & A57)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này10* ((Bla Bla Bla (Bla Bla) A58 & A59)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này11* ((Bla Bla Bla (Bla Bla) A60 & A61)) Kiểm tra tên nhiều từ với 1234 số và nội dung này12* ((Bla Bla Bla (Bla Bla) A62 & A63)) Kiểm tra tên nhiều từ với 1234 số và nội dung này13* ((Bla Bla Bla (Bla Bla) A64 & A65)) Kiểm tra tên nhiều từ với 1234 số và nội dung này14* ((Bla Bla Bla (Bla Bla) A66 & A67)) Kiểm tra tên nhiều từ với 1234 số và nội dung này15* ((Bla Bla Bla (Bla Bla) A68 & A69)) Kiểm tra tên nhiều từ với 1234 số và nội dung này16*"

fromnode = re.findall('(.*?)(?=\*\s)', RAW_Data)

in từ nút

del fromnode
del RAW_Data

Kết quả là: 'Kiểm tra tên nhiều từ với 1234 số và thứ này', '', '((Bla Bla Bla (Bla Bla) A40 & A41)) Kiểm tra tên nhiều từ với 3456 số và thứ này 2' .......... và vân vân.

Tôi dường như không thể chỉ bắt được các chuỗi như "Đặt tên cho bài kiểm tra nhiều từ với 3456 số và nội dung này" và bỏ qua tất cả các chuỗi như "((Bla Bla Bla (Bla Bla) A40 & A41))". Bất kỳ trợ giúp sẽ được đánh giá rất cao.

câu trả lời hay nhất

bạn có thể chia

r'\*\s*\({2}.*?\){2}\s*'

người mẫu ( xem bản demo ) phù hợp:

  • \* - Dấu hoa thị văn bản
  • \S* - Không có hoặc nhiều khoảng trống
  • \({2} - Đúng 2 dấu ngoặc trái
  • .*? - Không hoặc nhiều ký tự ngoại trừ dòng mới (Lưu ý: Nếu bạn cần khớp trên nhiều dòng, hãy thêm lại S logo) càng ít càng tốt ở cái đầu tiên
  • \){2} - khung đóng đôi
  • \S* - 0+ dấu cách.

Ngoài ra:tương tự, nhưng không được kiểm soát (do đó, hiệu quả hơn một chút):

\*\s*\({2}[^)]*(?:\)(?!\))[^)]*)*\){2}\s*

Nhìn thấy Bản demo IDEONE:

import re
p = re.compile(r'\*\s*\({2}.*?\){2}\s*')
test_str = "Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này* ((Bla Bla Bla (Bla Bla) A40 & A41)) Đặt tên Kiểm tra nhiều từ với 3456 số và nội dung này2* ((Bla Bla Bla (Bla Bla) A42 & A43)) Kiểm tra tên nhiều từ với 78910 số và nội dung này3* ((Bla Bla Bla (Bla Bla) A44 & A45)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này4* ((Bla Bla Bla (Bla Bla) A46 & A47)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này5* ((Bla Bla Bla (Bla Bla) A48 & A49)) Kiểm tra tên nhiều từ với 1234 số và nội dung này6* ((Bla Bla Bla (Bla Bla) A50 & A51)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này7* ((Bla Bla Bla (Bla Bla) A52 & A53)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này8* ((Bla Bla Bla (Bla Bla) A54 & A55)) Kiểm tra tên nhiều từ với 1234 số và nội dung này9* ((Bla Bla Bla (Bla Bla) A56 & A57)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này10* ((Bla Bla Bla (Bla Bla) A58 & A59)) Đặt tên Kiểm tra nhiều từ với 1234 số và nội dung này11* ((Bla Bla Bla (Bla Bla) A60 & A61)) Kiểm tra tên nhiều từ với 1234 số và nội dung này12* ((Bla Bla Bla (Bla Bla) A62 & A63)) Kiểm tra tên nhiều từ với 1234 số và nội dung này13* ((Bla Bla Bla (Bla Bla) A64 & A65)) Kiểm tra tên nhiều từ với 1234 số và nội dung này14* ((Bla Bla Bla (Bla Bla) A66 & A67)) Kiểm tra tên nhiều từ với 1234 số và nội dung này15* ((Bla Bla Bla (Bla Bla) A68 & A69)) Kiểm tra tên nhiều từ với 1234 số và nội dung này16*"
print(re.split(p, test_str))

gia hạn

用于 tìm lại Biểu thức chính quy cho:

(?:\*\s*\(\([^)]*(?:\)(?!\))[^)]*)*\)\))?\s*([^*]* (?:\*(?!\s*\(\()[^*]*)*)\s*

Kiểm tra bản demo biểu thức chính quy

Bị đe dọa bởi sự xuất hiện của nó? nó chỉ đơn giản hơn (?:\*\s*\(\(.*?\)\))?\s*(.*?(?=\*\s*(?:\(\(|$))) phiên bản mở rộng.

Nhìn thấy Bản demo IDEONE .

Về python - sử dụng Python RegEx re.findall để phân tích văn bản, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/36924820/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress