Đô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.
Python3
test_string
=
"Geeksforgeeks is best Computer Science Portal"
print
[
"The original string is : "
________ 9 & nbsp;
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
0s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
1=
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
3print
[
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
6 ________ 9 & nbsp; s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
8s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
9Đầ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
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
0 import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
1test_string
=
import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
4print
[
"The original string is : "
________ 9 & nbsp;
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
0s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
1=
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
3print
[
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
6 ________ 9 & nbsp; s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
8s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
9Đầ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
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
0 import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
1test_string
=
import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
4test_string
=
import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
4print
[
"The original string is : "
________ 9 & nbsp;
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
0s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
1=
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
3print
[
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
6 ________ 9 & nbsp; s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
8s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
9Đầ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’]
Tôi có một chuỗi print
8
Từ chuỗi trên, tôi chỉ muốn trích xuất từ sau từ này print
9 và trước [
0.
Vì vậy, về cơ bản tôi muốn trích xuất sau từ thứ tư được phân tách bằng dấu gạch dưới và cho đến từ trước .png
Tôi mới đến Regex.
Cuối cùng tôi chỉ muốn [
1.
HALFER
19.7K17 Huy hiệu vàng92 Huy hiệu bạc178 Huy hiệu đồng17 gold badges92 silver badges178 bronze badges
Đã hỏi ngày 21 tháng 1 năm 2019 lúc 14:06Jan 21, 2019 at 14:06
6
Tôi nghĩ những gì bạn đang yêu cầu là một cái gì đó như thế này:
import os
# I think you will have different jobs/pngs, so pass these variables from somewhere
jobPrefix = 'Job_Cluster_AK_Alaska_'
pngString = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
# Split filename/extension
pngTitle = os.path.splitext[pngString][0]
# Get the filename without the jobPrefix
finalTitle = pngTitle[len[jobPrefix]:]
Chỉnh sửa
Cố gắng tránh các biểu thức thông thường vì nói chung là chậm hơn nhiều so với việc cắt chuỗi
Đã trả lời ngày 21 tháng 1 năm 2019 lúc 14:32Jan 21, 2019 at 14:32
PrainDpraindPraind
1.5011 Huy hiệu vàng12 Huy hiệu bạc25 Huy hiệu đồng1 gold badge12 silver badges25 bronze badges
Bạn có thể làm điều đó ngay cả khi không có Regex như vậy:
s = 'Job_Cluster_AK_Alaska_Yakutat_CDP.png'
print[s[len['Job_Cluster_AK_Alaska_']:-len['.png']]]
Về bản chất ở đây, tôi lấy phần phụ bắt đầu ngay sau print
9 và kết thúc trước [
0.
Vẫn có lẽ là một cách tiếp cận Regex dễ đọc hơn và có thể duy trì hơn:
import re
m = re.match['Job_Cluster_AK_Alaska_[.*].png']
print[m[1]]
Đã trả lời ngày 21 tháng 1 năm 2019 lúc 14:11Jan 21, 2019 at 14:11
Ivaylo strandjevivaylo strandjevIvaylo Strandjev
67.6K17 Huy hiệu vàng121 Huy hiệu bạc172 Huy hiệu đồng17 gold badges121 silver badges172 bronze badges
2