Hướng dẫn regex to find a word before and after a specific word python - regex để tìm một từ trước và sau một từ cụ thể python

Cosnider dữ liệu follwing làm mẫu

input_corpus = "Đây là một ví dụ. \ n Tôi đang cố gắng trích xuất nó. \ n"

Tôi đang cố gắng trích xuất chính xác 2 từ trước và sau. \ N với mã sau

for m in re.finditer['[?:\S+\s+]{2,}[\.][\n]\s*[?:\S+\b\s*]{0,2}',input_corpus]:
   print[m]

Đầu ra dự kiến:

an example. I am
extract it.

Đầu ra thực tế: Không có gì bị bắt

Ai đó có thể chỉ cho tôi những gì sai với Regex.

Đã hỏi ngày 20 tháng 3 năm 2019 lúc 7:36Mar 20, 2019 at 7:36

1

Bạn có thể sử dụng Regex này:

r'[?:^|\S+\s+\S+]\n[?:\s*\S+\s+\S+|$]'

Demo Regex

Code:

>>> input_corpus = "this is an example.\n I am trying to extract it.\n"
>>> print re.findall[r'[?:^|\S+\s+\S+]\n[?:\s*\S+\s+\S+|$]', input_corpus]
['an example.\n I am', 'extract it.\n']

Details:

  • [?:^|\S+\s+\S+]: Kết hợp trước 2 từ hoặc dòng bắt đầu
  • \n: Kết hợp một dòng mới
  • an example. I am
    extract it.
    
    0: Kết hợp 2 từ hoặc đầu dòng tiếp theo

Đã trả lời ngày 20 tháng 3 năm 2019 lúc 7:43Mar 20, 2019 at 7:43

Anubhavaanubhavaanubhava

738K62 Huy hiệu vàng537 Huy hiệu bạc614 Huy hiệu đồng62 gold badges537 silver badges614 bronze badges

2

Tôi muốn trích xuất một từ cho câu hỏi- ai đã ăn táo. Giống như chuỗi là "Ujjwal đã ăn táo." Vì vậy, nó nên trích xuất từ ​​'ujjwal', một từ trước từ đã ăn bằng cách sử dụng biểu thức chính quy. Có ai có thể giúp tôi với regex? Trong Python.

Trên thực tế, tôi có một danh sách với các từ như 'đã ăn', 'ăn', 'ăn' giống như trong 'ujjwal đã ăn táo.' Ở đây cũng nên trích xuất ujjwal. Làm thế nào tôi có thể kiểm tra các từ của danh sách và không chỉ 'đã ăn' chính nó?

Bò biển

21.6K3 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng3 gold badges10 silver badges24 bronze badges

Hỏi ngày 22 tháng 4 năm 2021 lúc 6:43Apr 22, 2021 at 6:43

1

Nếu bạn có một danh sách từ và muốn có được một regex để khớp với danh sách từ trong Python, bạn có thể xác định một mẫu với một mẫu phụ với

an example. I am
extract it.
1 [hoặc] và tham gia các từ trong danh sách Word. Ví dụ:

import re

word_list = ['ate', 'eat', 'eaten']

pattern = rf'[\w+]\s*[?:\b[?:{"|".join[word_list]}]\b]'

result1 = re.findall[pattern, 'Ujjwal ate the apple.']

print[result1]
# output:
['Ujjwal']

result2 = re.findall[pattern, 'Ujjwal eaten the apple.']

print[result2]
# output:
['Ujjwal']

Ở đây, chúng tôi sử dụng chuỗi R cùng với chuỗi F để giữ mẫu.

an example. I am
extract it.
2 Trong chuỗi F sẽ quyết tâm thành
an example. I am
extract it.
3, tạo ra một regex một cách hiệu quả là
an example. I am
extract it.
4

Đã trả lời ngày 22 tháng 4 năm 2021 lúc 7:31Apr 22, 2021 at 7:31

Biển biểnSeaBean

21.6K3 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng3 gold badges10 silver badges24 bronze badges

9

Hỏi ngày 22 tháng 4 năm 2021 lúc 6:43

import re
results = re.findall['[\w+] ate', 'Ujjwal ate the apple.']
print[results]

Nếu bạn có một danh sách từ và muốn có được một regex để khớp với danh sách từ trong Python, bạn có thể xác định một mẫu với một mẫu phụ với

an example. I am
extract it.
1 [hoặc] và tham gia các từ trong danh sách Word. Ví dụ:

['Ujjwal']

[Edit]

Ở đây, chúng tôi sử dụng chuỗi R cùng với chuỗi F để giữ mẫu.

an example. I am
extract it.
2 Trong chuỗi F sẽ quyết tâm thành
an example. I am
extract it.
3, tạo ra một regex một cách hiệu quả là
an example. I am
extract it.
4

Đã trả lời ngày 22 tháng 4 năm 2021 lúc 7:31Apr 22, 2021 at 6:58

Biển biểnEmanuele

Đối với từ chung [bất kỳ ký tự từ nào [tương đương với [A-A-Z0-9_]]]] Bạn có thể sử dụng3 silver badges9 bronze badges

2

Làm thế nào để bạn phù hợp với mọi thứ sau một từ trong regex?

Nếu bạn muốn .Để phù hợp với tất cả mọi thứ, bao gồm cả dòng mới, bạn cần bật chế độ "Dot-mates-all" trong động cơ Regex của bạn chọn [ví dụ: thêm cờ Dotall vào Python hoặc /s trong PCRE.enable "dot-matches-all" mode in your regex engine of choice [for example, add re. DOTALL flag in Python, or /s in PCRE.

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

Chúng ta có thể sử dụng các biểu thức thông thường trong Python để trích xuất các từ cụ thể từ một chuỗi.Chúng ta có thể sử dụng phương thức search [] từ mô -đun RE để tìm sự xuất hiện đầu tiên của từ và sau đó chúng ta có thể có được từ bằng cách sử dụng cắt.use search[] method from re module to find the first occurrence of the word and then we can obtain the word using slicing.

Làm cách nào để tìm một từ trong một chuỗi python regex?

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ế ..

\ B có nghĩa là gì trong regex?

Các metacharacter \ b phù hợp với đầu hoặc cuối của một từ.matches at the beginning or end of a word.

Bài Viết Liên Quan

Chủ Đề