Tôi đang cố gắng học cách sử dụng Regex để trích xuất các giá trị bằng Python.
Làm thế nào tôi chỉ có thể trích xuất giá trị 9H7A2M từ dòng này:
D: String-1.String2 15000 9h7a2m String3
Mã cập nhật:
Ngoài ra, làm thế nào để tôi có được dòng trên cùng từ điều này:
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
D: string-1.string2 15000 9h7a2m string3.string
Vì vậy, tôi có thể chỉ còn lại với 9h7a2m
cảm ơn trước.
Một điều bạn có thể làm là sử dụng một biểu thức thông thường và trích xuất các phần riêng lẻ.
Nội phân Chính showShow
- Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
- Ví dụ mẫu biểu thức thông thường
- Các mẫu giống như ký tự đại diện
- Tham lam và không tham lam
- Khớp với bất kỳ ký tự nào
- Khớp với đầu/kết thúc của chuỗi
- Case-insensitive
- Làm cách nào để trích xuất một giá trị cụ thể từ một chuỗi trong Python?
- Làm thế nào để bạn lấy một phần của một chuỗi trong Python?
- Làm cách nào để trích xuất các từ từ một chuỗi?
- Làm thế nào để bạn trích xuất một từ cụ thể từ một dòng trong Python?
Chẳng hạn, giả sử tin nhắn của bạn là
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
5, bạn có thể tạo biểu thức thông thường for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
6Đây là những gì tôi sẽ làm:
import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
Trích xuất sau đó sẽ là một bản đồ trông như thế này:
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
7. Bạn có thể thoát khỏi các trích dẫn kép nếu bạn thực sự muốn và chuyển đổi tuổi sang INT từ đó.Để có được tất cả các lĩnh vực có mặt bạn có thể làm:
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
Bài viết này mô tả cách trích xuất một chuỗi con từ một chuỗi trong Python. Bạn có thể trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự hoặc với các mẫu biểu thức chính quy.
- Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
- Ví dụ mẫu biểu thức thông thường
- Các mẫu giống như ký tự đại diện
- Tham lam và không tham lam
- Khớp với bất kỳ ký tự nào
- Ví dụ mẫu biểu thức thông thường
- Các mẫu giống như ký tự đại diện
- Tham lam và không tham lam
- Khớp với bất kỳ ký tự nào
- Khớp với bất kỳ ký tự nào
- Khớp với đầu/kết thúc của chuỗi
- Làm cách nào để trích xuất một giá trị cụ thể từ một chuỗi trong Python?
- Làm thế nào để bạn lấy một phần của một chuỗi trong Python?
Làm cách nào để trích xuất các từ từ một chuỗi?
- Chẳng hạn, giả sử tin nhắn của bạn là
5, bạn có thể tạo biểu thức thông thườngfor field in extracted: print[field, extracted[field]] # Prints name "Raj" lastname "Paul" gender "male" age 23
6for field in extracted: print[field, extracted[field]] # Prints name "Raj" lastname "Paul" gender "male" age 23
Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự
Ví dụ mẫu biểu thức thông thường
s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
Các mẫu giống như ký tự đại diện
print[s[-1]]
# e
print[s[-5]]
# a
Tham lam và không tham lam
# print[s[5]]
# IndexError: string index out of range
# print[s[-6]]
# IndexError: string index out of range
Khớp với bất kỳ ký tự nào
s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
Khớp với đầu/kết thúc của chuỗi
print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
Làm cách nào để trích xuất một giá trị cụ thể từ một chuỗi trong Python?
Làm thế nào để bạn lấy một phần của một chuỗi trong Python?Làm cách nào để trích xuất các từ từ một chuỗi?
print[s[-100:100]]
# abcde
Chẳng hạn, giả sử tin nhắn của bạn là
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
5, bạn có thể tạo biểu thức thông thường for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
6import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
0Đây là những gì tôi sẽ làm:
- Trích xuất sau đó sẽ là một bản đồ trông như thế này:
7. Bạn có thể thoát khỏi các trích dẫn kép nếu bạn thực sự muốn và chuyển đổi tuổi sang INT từ đó.for field in extracted: print[field, extracted[field]] # Prints name "Raj" lastname "Paul" gender "male" age 23
Để có được tất cả các lĩnh vực có mặt bạn có thể làm:
Bài viết này mô tả cách trích xuất một chuỗi con từ một chuỗi trong Python. Bạn có thể trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự hoặc với các mẫu biểu thức chính quy.
Trích xuất một ký tự bằng chỉ mục
import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
1Trích xuất một chuỗi con bằng cách cắt
- Trích xuất dựa trên số lượng ký tự
Trích xuất một chuỗi con với các biểu thức thông thường:
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
8, for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
9import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
2Trích xuất một phần của mẫu với dấu ngoặc đơn
Trích xuất bởi nhiều mẫu
- Trường hợp không nhạy cảm
Nếu bạn muốn thay thế một chuỗi con bằng một chuỗi khác, hãy xem bài viết sau.
import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
3Thay thế các chuỗi trong python [thay thế, dịch, re.sub, re.sub]
for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
9 Trả về tất cả các phần phù hợp như một danh sách các chuỗi.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
4Ví dụ mẫu biểu thức thông thường
Phần này trình bày một số ví dụ về các mẫu biểu thức chính quy với các ký tự meta/trình tự đặc biệt.
Các mẫu giống như ký tự đại diện
s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
5 khớp với bất kỳ ký tự đơn nào ngoại trừ một dòng mới và s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
6 khớp với số lần lặp lại của mẫu trước.Ví dụ:
s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
7 khớp với chuỗi bắt đầu với s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
8 và kết thúc bằng s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
9. Vì s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
6 phù hợp với các lần lặp lại bằng không, nó cũng phù hợp với print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
1.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
5# print[s[5]]
# IndexError: string index out of range
# print[s[-6]]
# IndexError: string index out of range
3 khớp với một hoặc nhiều lần lặp lại của mẫu trước. print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
3 không khớp với print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
1.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
6print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
5 khớp với số không hoặc một mẫu trước. Trong trường hợp của print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
6, nó khớp với print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
1 và chuỗi chỉ có một ký tự giữa s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
8 và s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
9.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
7Tham lam và không tham lam
s = 'abcde'
print[s[1:3]]
# bc
print[s[:3]]
# abc
print[s[1:]]
# bcde
6, # print[s[5]]
# IndexError: string index out of range
# print[s[-6]]
# IndexError: string index out of range
3 và print[s[-4:-2]]
# bc
print[s[:-2]]
# abc
print[s[-4:]]
# bcde
5 đều là những trận đấu tham lam, phù hợp với văn bản càng nhiều càng tốt. print[s[3:1]]
#
print[s[3:1] == '']
# True
3, print[s[3:1]]
#
print[s[3:1] == '']
# True
4 và print[s[3:1]]
#
print[s[3:1] == '']
# True
5 là các trận đấu không màu xanh lá cây, tối thiểu, phù hợp với ít ký tự nhất có thể.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
8Nếu bạn đặt một phần của một mẫu biểu thức thông thường trong ngoặc đơn
print[s[3:1]]
#
print[s[3:1] == '']
# True
6, bạn có thể trích xuất một chuỗi con trong phần đó.import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
9Nếu bạn muốn khớp với dấu ngoặc đơn
print[s[3:1]]
#
print[s[3:1] == '']
# True
6 làm nhân vật, hãy thoát chúng bằng dấu gạch chéo ngược # print[s[5]]
# IndexError: string index out of range
# print[s[-6]]
# IndexError: string index out of range
5.for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
0Khớp với bất kỳ ký tự nào
Việc kèm theo một chuỗi với
s = 'abcde'
print[s[0]]
# a
print[s[4]]
# e
0 khớp với bất kỳ một trong các ký tự trong chuỗi.Nếu bạn kết nối các điểm mã Unicode liên tiếp với
print[s[-100:100]]
# abcde
0, chẳng hạn như print[s[-100:100]]
# abcde
1, tất cả các ký tự giữa chúng đều được đề cập. Ví dụ, print[s[-100:100]]
# abcde
1 khớp với bất kỳ một ký tự nào của bảng chữ cái viết thường.for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
1Khớp với đầu/kết thúc của chuỗi
print[s[-100:100]]
# abcde
3 khớp với sự khởi đầu của chuỗi và print[s[-100:100]]
# abcde
4 khớp với phần cuối của chuỗi.for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
2Sử dụng
print[s[-100:100]]
# abcde
5 để trích xuất một chuỗi con phù hợp với một trong nhiều mẫu. Ví dụ: đối với các mẫu biểu thức thông thường print[s[-100:100]]
# abcde
6 và print[s[-100:100]]
# abcde
7, bạn có thể viết print[s[-100:100]]
# abcde
8.for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
3Case-insensitive
Mô-đun RE là nhạy cảm trường hợp theo mặc định. Đặt đối số
print[s[-100:100]]
# abcde
9 thành import re
message = 'name="Raj",lastname="Paul",gender="male", age=23'
message += ',' # Add a comma for the regex
findall = re.findall[r'[?P.*?]=[?P.*?],', message] # Note the additional comma
extracted = {k.strip[]: v.strip[] for k,v in findall}
if 'age' in extracted:
print[extracted['age']] # prints 23
00 để thực hiện không nhạy cảm trường hợp.for field in extracted:
print[field, extracted[field]]
# Prints
name "Raj"
lastname "Paul"
gender "male"
age 23
4Làm cách nào để trích xuất một giá trị cụ thể từ một chuỗi trong Python?
Chúng ta hãy thảo luận về các phương pháp mà chúng ta có thể sử dụng để trích xuất các số từ chuỗi đã cho:..
Phương pháp 1: Sử dụng mô -đun Regex ..
Phương pháp 2: Tách và nối các số vào danh sách bằng cách sử dụng các hàm split [] và append [] ..
Phương pháp 3: Sử dụng hàm isDigit [] trong khả năng hiểu danh sách ..
Phương pháp 4: Sử dụng số từ thư viện chuỗi ..
Conclusion..
Làm thế nào để bạn lấy một phần của một chuỗi trong Python?
Trích xuất con bằng cách sử dụng cắt chuỗi trong Python..
[:] -> Trả về toàn bộ chuỗi ..
[4:] -> Trả về một chuỗi con bắt đầu từ chỉ mục 4 cho đến chỉ mục cuối cùng ..
[: 8] -> Trả về một chuỗi con bắt đầu từ INDEX 0 đến chỉ mục 7 ..
[2: 7] -> Trả về một chuỗi con bắt đầu từ INDEX 2 TO
Làm cách nào để trích xuất các từ từ một chuỗi?
Để trích xuất các từ từ một vectơ chuỗi, chúng ta có thể sử dụng chức năng từ của gói StringR. Ví dụ: nếu chúng ta có một vectơ gọi là X chứa 100 từ thì 20 từ đầu tiên có thể được trích xuất bằng cách sử dụng từ lệnh [x, start = 1, end = 20, sep = fixed [""]].use word function of stringr package. For example, if we have a vector called x that contains 100 words then first 20 words can be extracted by using the command word[x,start=1,end=20,sep=fixed[" "]].
Làm thế nào để bạn trích xuất một từ cụ thể từ một dòng trong Python?
Sử dụng các biểu thức chính quy để trích xuất bất kỳ từ cụ thể nào 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ể lấy từ bằng cách cắt lát. Phương thức RE.Search [] sẽ lấy từ để được trích xuất ở dạng biểu thức thông thường và chuỗi làm đầu vào và trả về một RE.use search[] method from re module to find the first occurrence of the word and then we can obtain the word using slicing. re.search[] method will take the word to be extracted in regular expression form and the string as input and and returns a re.