Hướng dẫn word extraction python - trăn khai thác từ

Đôi khi chúng ta đi qua các tình huống mà chúng ta yêu cầu để có được tất cả các từ có trong chuỗi, đây có thể là một nhiệm vụ tẻ nhạt được thực hiện bằng phương pháp gốc. Do đó có tốc ký để thực hiện nhiệm vụ này luôn hữu ích. Ngoài ra, bài viết này cũng bao gồm các trường hợp trong đó các dấu chấm câu phải bị bỏ qua. Phương pháp nếu người ta muốn hoàn thành nhiệm vụ cụ thể này. Nhưng nhược điểm là nó thất bại trong các trường hợp chuỗi chứa dấu chấm câu. & NBSP;
Method #1 : 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. But the drawback is that it fails in cases the string contains punctuation marks.
 

Nội phân chính

  • Hướng dẫn Quantri
  • Trích xuất từ ​​từ dữ liệu văn bản của bạn bằng cách sử dụng Python, được tích hợp trong mô -đun biểu thức chính quy
  • Sử dụng các biểu thức thường xuyên trong Python
  • Sử dụng "|" Người vận hành để trích xuất tất cả sự xuất hiện của các từ cụ thể
  • Tìm kiếm nhiều mẫu
  • Trích xuất các từ chỉ chứa bảng chữ cái
  • Hiểu các lớp nhân vật trong regex
  • Trích xuất các từ theo sau là mẫu cụ thể
  • Làm cách nào để trích xuất một từ cụ thể từ một chuỗi trong Python?
  • Làm cách nào để trích xuất một phần cụ thể của chuỗi trong Python?
  • Làm cách nào để tìm một từ cụ thể trong một tệp văn bản python?

Python3

input.txt, ppl=15911.4 0input.txt, ppl=15911.4 1 input.txt, ppl=15911.4 2

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4input.txt, ppl=15911.4 5 ________ 26 & nbsp; input.txt, ppl=15911.4 7

input.txt, ppl=15911.4 8input.txt, ppl=15911.4 1 import re 0

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4import re 3 ________ 26 & nbsp; import re 5import re 6

Đầu ra: & nbsp; chuỗi gốc là: geeksforgeek là cổng thông tin khoa học máy tính tốt nhất & nbsp; danh sách các từ là: [' ; 
The original string is : Geeksforgeeks is best Computer Science Portal 
The list of words is : [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’] 
 

& nbsp; & nbsp; Phương pháp #2: Sử dụng regex (findall ()) & nbsp; Trong các trường hợp chứa tất cả các ký tự đặc biệt và dấu chấm câu, như đã thảo luận ở trên, phương pháp tìm kiếm thông thường Biểu thức để thực hiện nhiệm vụ này. Hàm Findall Trả về danh sách sau khi lọc chuỗi và trích xuất các từ bỏ qua các dấu chấm câu. & nbsp;
Method #2 : Using regex( findall() ) 
In the cases which contain all the special characters and punctuation marks, as discussed above, the conventional method of finding words in string using split can fail and hence requires regular expressions to perform this task. findall function returns the list after filtering the string and extracting words ignoring punctuation marks.
 

Python3

import re 7 import re 8

input.txt, ppl=15911.4 0input.txt, ppl=15911.4 1 text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."1

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4input.txt, ppl=15911.4 5 ________ 26 & nbsp; input.txt, ppl=15911.4 7

input.txt, ppl=15911.4 8input.txt, ppl=15911.4 1 import re 0

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4import re 3 ________ 26 & nbsp; import re 5import re 6

Đầu ra: & nbsp; chuỗi gốc là: geeksforgeek là cổng thông tin khoa học máy tính tốt nhất & nbsp; danh sách các từ là: [' ; 
The original string is : Geeksforgeeks, is best @# Computer Science Portal.!!! 
The list of words is : [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’] 
 

& nbsp; & nbsp; Phương pháp #2: Sử dụng regex (findall ()) & nbsp; Trong các trường hợp chứa tất cả các ký tự đặc biệt và dấu chấm câu, như đã thảo luận ở trên, phương pháp tìm kiếm thông thường Biểu thức để thực hiện nhiệm vụ này. Hàm Findall Trả về danh sách sau khi lọc chuỗi và trích xuất các từ bỏ qua các dấu chấm câu. & nbsp;
Method #3 : Using regex() + string.punctuation 
This method also used regular expressions, but string function of getting all the punctuations is used to ignore all the punctuation marks and get the filtered result string.
 

Python3

import re 7 import re 8

input.txt, ppl=15911.4 0input.txt, ppl=15911.4 1 text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."1

input.txt, ppl=15911.4 0input.txt, ppl=15911.4 1 text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."1

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4input.txt, ppl=15911.4 5 ________ 26 & nbsp; input.txt, ppl=15911.4 7

input.txt, ppl=15911.4 8input.txt, ppl=15911.4 1 import re 0

input.txt, ppl=15911.4 3 input.txt, ppl=15911.4 4import re 3 ________ 26 & nbsp; import re 5import re 6

Đầu ra: & nbsp; chuỗi gốc là: geeksforgeek là cổng thông tin khoa học máy tính tốt nhất & nbsp; danh sách các từ là: [' ; 
The original string is : Geeksforgeeks, is best @# Computer Science Portal.!!! 
The list of words is : [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’] 
 

& nbsp; & nbsp; Phương pháp #2: Sử dụng regex (findall ()) & nbsp; Trong các trường hợp chứa tất cả các ký tự đặc biệt và dấu chấm câu, như đã thảo luận ở trên, phương pháp tìm kiếm thông thường Biểu thức để thực hiện nhiệm vụ này. Hàm Findall Trả về danh sách sau khi lọc chuỗi và trích xuất các từ bỏ qua các dấu chấm câu. & nbsp;

1 sentences, 6 words, 1 OOVs 1 zeroprobs, logprob= -21.0085 ppl= 15911.4 ppl1= 178704 6 words, rank1= 0 rank5= 0 rank10= 0 7 words+sents, rank1wSent= 0 rank5wSent= 0 rank10wSent= 0 qloss= 0.925606 absloss= 0.856944 file input.txt : 1 sentences, 6 words, 1 OOVs 1 zeroprobs, logprob= -21.0085 ppl= 15911.4 ppl1= 178704 6 words, rank1= 0 rank5= 0 rank10= 0 7 words+sents, rank1wSent= 0 rank5wSent= 0 rank10wSent= 0 qloss= 0.925606 absloss= 0.856944

import re 7 import re 8

input.txt, ppl=15911.4 0input.txt, ppl=15911.4 1 text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."1

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part

input.txt, ppl=15911.4 8input.txt, ppl=15911.4 1 text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."9cities_record = 'Chennai'
re.findall(cities_record, text)
0cities_record = 'Chennai'
re.findall(cities_record, text)
1

Đầu ra: & nbsp; chuỗi gốc là: geeksforgeek, là tốt nhất @# cổng khoa học máy tính. !!! & nbsp; danh sách các từ là: ['geeksforgeek', 'là', 'tốt nhất', 'máy tính', 'khoa học' , 'Cổng thông tin'] & nbsp; & nbsp;

input.txt, ppl=15911.4

& nbsp; & nbsp; Phương thức #3: Sử dụng regex () + string.punning & nbsp; Phương pháp này cũng sử dụng các biểu thức chính quy, nhưng chức năng chuỗi của tất cả các dấu chấm câu được sử dụng để bỏ qua tất cả các dấu chấm câu và nhận chuỗi kết quả được lọc. & NBSP;

Hướng dẫn Quantri

Trích xuất từ ​​từ dữ liệu văn bản của bạn bằng cách sử dụng Python, được tích hợp trong mô -đun biểu thức chính quy

import re 7 cities_record = 'Chennai'
re.findall(cities_record, text, flags=re.IGNORECASE)
1

input.txt, ppl=15911.4 8input.txt, ppl=15911.4 1 cities_record = 'Chennai|Mumbai'
re.findall(cities_record, text, flags=re.IGNORECASE)
2cities_record = 'Chennai|Mumbai'
re.findall(cities_record, text, flags=re.IGNORECASE)
3input.txt, ppl=15911.4 6__75input.txt, ppl=15911.4 6__77777778

Tôi có tệp đầu vào như:

Tôi muốn trích xuất từ ​​ppl và giá trị đến sau nó, trong trường hợp này: ppl = 15911.4

Tôi đang sử dụng mã này:

Sử dụng các biểu thức thường xuyên trong Python

Tuy nhiên, điều này chỉ trích xuất từ ​​ppl nhưng không phải là giá trị. Tôi cũng muốn in tên tệp cùng.

import re

Đầu ra dự kiến:

Làm thế nào tôi có thể sửa lỗi này?

Sử dụng "|" Người vận hành để trích xuất tất cả sự xuất hiện của các từ cụ thể

Hãy giả sử rằng bạn có đoạn văn bản sau đây mô tả các thành phố khác nhau và bạn muốn có một danh sách tất cả các sự kiện cho thành phố cụ thể.

text = "Chennai is a beautiful city. It’s the capital of the state of Tamil Nadu. Chennai has an area close to 430 kilometer squares. Well chennai is not as large as mumbai which has an area of 603.4 kilometer squares. By road, Chennai is about 1500 kilometers away from Mumbai. Whereas, it is about 2200 kilometers away from Delhi, the capital of India."

Bây giờ, bạn muốn trích xuất tất cả các lần xuất hiện của Chennai, trong đó, bạn có thể làm điều gì đó như thế này:

cities_record = 'Chennai'
re.findall(cities_record, text)

Ở đây, ['Chennai', 'Chennai', 'chennai', 'mumbai', 'Chennai', 'Mumbai']8 là một phương thức trong import re 8 có hai tham số - đầu tiên mẫu được tìm kiếm, trong trường hợp này là text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
0 và tham số thứ hai là nội dung trong cities_record = 'Chennai'
re.findall(cities_record, text, flags=re.IGNORECASE)
1, từ đó nó sẽ tìm kiếm mẫu.

Phương thức trả về tất cả các trận đấu không chồng chéo của mẫu, trong biến text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
2, từ chuỗi tham số thứ hai, trong biến text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
3 trong trường hợp của chúng tôi, như một danh sách các chuỗi.

Do đó, ô mã trên sẽ trả về danh sách tất cả các lần xuất hiện của từ text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
0 trong chuỗi của chúng tôi và do đó sẽ trả về danh sách sau:

text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
5

Nhưng đợi một giây. Tài liệu của chúng tôi đã xảy ra Chennai 4 lần nhưng danh sách chỉ hiển thị 2. Tại sao?

Nếu bạn nhìn kỹ trong đoạn văn, bạn sẽ thấy rằng lần thứ ba, tên của thành phố được viết là text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
6 với text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
7 trong trường hợp thường.

Theo mặc định, các biểu thức chính quy là trường hợp nhạy cảm.

Vậy làm thế nào để bạn nắm bắt text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
8 quá trong một người tự đi? Điều này cho chúng tôi cơ hội giới thiệu cho bạn tham số thứ ba text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"
9 của phương thức with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 00. Bạn có thể đặt giá trị của nó thành with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 01 như sau:

cities_record = 'Chennai'
re.findall(cities_record, text, flags=re.IGNORECASE)

Bằng cách đặt tham số cờ thành with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 02, bạn đang nói với trình thông dịch bỏ qua trường hợp trong khi thực hiện tìm kiếm. Khi chạy mã này, bạn sẽ nhận được đầu ra sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 03

Tìm kiếm nhiều mẫu

Bây giờ, cùng với Chennai, bạn muốn trích xuất tất cả các lần xuất hiện của tên thành phố là Mumbai Mumbai từ đoạn văn bản này. Bạn có thể chỉ cần thực hiện điều này bằng cách sử dụng toán tử with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 04 để tạo mẫu của bạn:

cities_record = 'Chennai|Mumbai'
re.findall(cities_record, text, flags=re.IGNORECASE)

Điều này sẽ trả về:

['Chennai', 'Chennai', 'chennai', 'mumbai', 'Chennai', 'Mumbai']

Vì vậy, về cơ bản with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 04 là một nhân vật đặc biệt, nói với Regex để tìm kiếm mẫu một mẫu with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 06 trong văn bản được cung cấp.

Điều gì sẽ xảy ra nếu bạn muốn tìm kiếm sự xuất hiện của with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 07 trong tài liệu của bạn? Vì, with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 07 phục vụ có ý nghĩa đặc biệt do đó, bạn cần đưa nó vào mẫu của mình với dấu gạch chéo ngược là with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 09. Backslash with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 10 về cơ bản bảo Regex đọc nó như một nhân vật mà không suy luận ý nghĩa đặc biệt của nó.

Vì vậy, với tìm kiếm này, nó không quan trọng nếu tên của thành phố được viết là Mumbai Mumbai, Hồi Mumbai ,, Chennai, hay Chennai, trong tài liệu của bạn. Tất cả những trường hợp này sẽ được nắm bắt, miễn là chính tả của thành phố được viết chính xác. Nếu bạn muốn đưa nhiều thành phố vào tìm kiếm của mình, bạn có thể bao gồm chúng bằng cách sử dụng toán tử with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 04.

Trích xuất các từ chỉ chứa bảng chữ cái

Có những lúc bạn muốn trích xuất các từ chỉ chứa bảng chữ cái. Một ví dụ điển hình cho điều này sẽ là nếu bạn nhận được một tài liệu văn bản có chứa tên của tất cả các loại trái cây và rau quả cùng với số lượng tính bằng kg mà một người đã mua ở định dạng sau:

text = "\
Banana 1.051 48.25\
Apple 1.024 180.54\
Carrot 0.524 47.20\
Radish 0.251 27.14\
Tomato 0.508 41.05"

Để chỉ trích xuất tên của các loại trái cây/rau đã được mua, bạn có thể tạo một mẫu bằng lớp chỉ chứa các ký tự. Mô hình sẽ như sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 0

Trong mẫu này with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 12 biểu thị một lớp ký tự từ with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 13 đến with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 14. Toán tử input.txt, ppl=15911.4 6 biểu thị nhiều lần xuất hiện của lớp ký tự này. Do đó, để trích xuất tên của trái cây và rau quả, bạn có thể sử dụng mẫu như sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 1

Bạn sẽ nhận được đầu ra sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 2

Nhân vật input.txt, ppl=15911.4 6 là một nhân vật đặc biệt trong Regex. Nó được sử dụng để phù hợp với 1 hoặc nhiều sự lặp lại của biểu thức hoặc lớp thông thường trước đó trong trường hợp của chúng tôi là with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 12. Vì vậy, nó phù hợp với 1 hoặc nhiều sự lặp lại của bảng chữ cái thường xuyên và do đó chúng tôi nhận được danh sách trên. Nếu chúng tôi muốn bao gồm 1 hoặc nhiều lần lặp lại của cả bảng chữ cái dưới và trên, chúng tôi có thể tạo mẫu như sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 3

Vì vậy, theo cách này, bất kể trường hợp nào của chúng tôi và rau quả của chúng tôi được viết vào, chúng sẽ bị bắt bởi mẫu này ngay cả khi không sử dụng cờ with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 02.

Hiểu các lớp nhân vật trong regex

Các dấu ngoặc vuông là ‘ký tự đặc biệt, trong Regex được sử dụng để phù hợp với một tập hợp các ký tự. Ví dụ: with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 19 sẽ khớp với with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 20, with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 21 hoặc with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 22. Trong trường hợp của chúng tôi, chúng tôi đã sử dụng with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 12. with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 24Character Khi được sử dụng bên trong with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 25, chỉ định phạm vi các ký tự có thể được khớp. Nó được sử dụng bằng cách đặt nó giữa hai ký tự là giới hạn thấp hơn và trên của phạm vi.

Lớp ____112 sẽ phù hợp với bất kỳ chữ cái ASCII nào, with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 27 sẽ khớp với tất cả các bảng chữ cái chữ thường từ with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 13 đến with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 29, v.v. Nếu bạn muốn khớp với nghĩa đen with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 30 bên trong dấu ngoặc vuông, bạn cần chỉ định nó bằng cách sử dụng dấu gạch chéo ngược with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 31. Nhân vật chao đảo with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 32 là nhân vật thoát hiểm nói với Regex coi nhân vật sau đây là một nghĩa đen và bỏ qua ý nghĩa đặc biệt của nó.

Regex cũng sẽ coi with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 30 là một nghĩa đen nếu nó được sử dụng làm ký tự bắt đầu hoặc bắt đầu bên trong khung vuông như thế này: with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 34. Điều này sẽ chỉ khớp với with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 35 và with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 30.

Trích xuất các từ theo sau là mẫu cụ thể

Bạn sẽ thường gặp các vấn đề mà bạn phải trích xuất các từ/mẫu cụ thể theo sau là một ký tự cụ thể. Một ví dụ điển hình về điều này sẽ là trường hợp khi bạn nhận được nhận xét về một bài viết cụ thể có thể trên một trang web và bạn muốn trích xuất tất cả các tên người dùng/ID được gắn thẻ trong đó.

Để đơn giản, hãy để giả sử rằng tên người dùng của chúng tôi chỉ có thể chứa bảng chữ cái và bất cứ thứ gì theo sau là with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 37 mà không có bất kỳ khoảng trống nào là tên người dùng.

Hãy để nhận xét sau đây làm văn bản ví dụ:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 4

Hãy để tạo ra một mẫu regex có thể được sử dụng để tìm kiếm tất cả các tên người dùng được gắn thẻ trong nhận xét.

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 5

Mẫu biểu thức chính quy này sẽ tìm và trích xuất tất cả các tên người dùng được gắn thẻ trong nhận xét, mà không cần phần with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 37.

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 6

Đầu ra cho biểu thức thông thường ở trên là:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 7

Ở đây, nếu bạn kiểm tra mô hình của chúng tôi một cách cẩn thận, chúng tôi đã đặt mô hình của chúng tôi vào dấu ngoặc đơn sau with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 37. Mẫu với ngoặc đơn trả về bất cứ điều gì phù hợp với biểu thức là bên trong dấu ngoặc đơn nhưng bắt đầu hoặc kết thúc với bất cứ điều gì được đề cập bên ngoài dấu ngoặc đơn.

Điều đó có nghĩa là, những gì được tìm kiếm trong trường hợp này là @ ngay lập tức theo sau bởi 1 hoặc nhiều sự lặp lại của bất kỳ bảng chữ cái cấp dưới/trên nào, nhưng chỉ có mẫu bên trong with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 40 được trả về làm đối tượng quan tâm. Vì vậy, nếu bạn loại bỏ toán tử with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 40 khỏi biểu thức thông thường của chúng tôi:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 8

Bạn sẽ nhận được đầu ra sau:

with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 9

Đây là một trong những cách mà bạn có thể sử dụng toán tử with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 40 để trích xuất các mẫu cụ thể mà chúng tôi quan tâm, xảy ra cùng với một số mẫu khác mà chúng tôi không quan tâm đến việc chụp, như chúng tôi muốn bỏ qua biểu tượng with open("input.txt") as openfile: for line in openfile: for part in line.split(): if "ppl=" in part: print part 37 trong trường hợp của chúng tôi .

Để hiểu tất cả các thành phần cơ bản của Regex trong Python, cách tốt nhất để làm điều đó là bằng cách hướng đến tài liệu chính thức của Python 3.8 Regex tại đây:

Chúng tôi hy vọng bạn đã theo dõi bài viết cùng và thực thi mã khi bạn đang đọc bài đăng.

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

Sử dụng hàm phân chia, chúng ta có thể chia chuỗi thành một danh sách các từ và đây là phương pháp chung 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. Nhưng nhược điểm là nó thất bại trong các trường hợp chuỗi chứa dấu chấm câu. and this is the most generic and recommended method if one wished to accomplish this particular task. But the drawback is that it fails in cases the string contains punctuation marks.

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

Bạn có thể nhận được chuỗi con của một chuỗi trong Python bằng tùy chọn STR [0: N] ...

Chuỗi - Tên của chuỗi mà từ đó nên trích xuất chuỗi con ..

5 -Chỉ số khởi động của chuỗi con. Bao gồm ..

11 - Chỉ số kết thúc của chuỗi con. Loại trừ..

Làm cách nào để tìm một từ cụ thể trong một tệp văn bản python?

Phương pháp 1: Tìm chỉ mục của chuỗi trong tệp văn bản bằng cách sử dụng readline () trong phương thức này, chúng tôi đang sử dụng hàm readline () và kiểm tra hàm find (), phương thức này trả về -1 nếu không tìm thấy giá trị và nếu thấy nó trả về 0.Finding the index of the string in the text file using readline() In this method, we are using the readline() function, and checking with the find() function, this method returns -1 if the value is not found and if found it returns 0.

Chủ đề