Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การเตรียมสตริงอินเทอร์เน็ต Python


เพื่อระบุสิ่งต่าง ๆ ในอินเทอร์เน็ต จำเป็นต้องเปรียบเทียบการระบุที่แตกต่างกันเพื่อความเท่าเทียมกัน ขั้นตอนการเปรียบเทียบขึ้นอยู่กับโดเมนของแอปพลิเคชัน ตัวอย่างเช่น บางสิ่งไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เป็นต้น เพื่อตรวจสอบข้อมูลประเภทนี้ stringprep ถูกนำมาใช้

RFC 3454 กำหนดขั้นตอนเพื่อเตรียมสตริง Unicode ก่อนส่งผ่านสาย หลังจากผ่านขั้นตอนการเตรียมการแล้วจะมีรูปแบบปกติบางอย่าง

RFC กำหนดชุดของตาราง ตารางเหล่านี้สามารถรวมกันเป็นโปรไฟล์ได้ ตัวอย่างเช่น มีโปรไฟล์ของ stringprep คือ nameprep . ใน nameprep , มีชื่อโดเมนสากล

ตารางมี 2 แบบ คือ set และ การแมป . หากมีอักขระหนึ่งตัวในตารางชุด อักขระนั้นจะส่งคืนค่าจริง มิฉะนั้น จะเป็นเท็จ สำหรับตารางการแมป เมื่อส่งคีย์ มันจะคืนค่าที่เกี่ยวข้อง

ในการใช้โมดูลนี้ เราจำเป็นต้องนำเข้า stringprep โมดูลในรหัสของเรา

import stringprep

ตาราง stringprep คือ −

ซีเนียร์ ตารางและคำอธิบาย
1

stringprep.in_table_a1(code)

เป็นจุดรหัสที่ไม่ได้ลงนามใน Unicode 3.2

2

stringprep.in_table_b1(code)

มันถูกแมปโดยทั่วไปเพื่อไม่มีอะไรเลย

3

stringprep.in_table_b2(code)

ส่งคืนค่าที่แมปสำหรับรหัสไปยังตาราง B.2 การทำแผนที่สำหรับการพับกล่อง NFKC

4

stringprep.in_table_b3(code)

การทำแผนที่การพับกรณีโดยไม่มีการปรับมาตรฐาน

5

stringprep.in_table_c11(code)

อักขระช่องว่าง ASCII

6

stringprep.in_table_c12(code)

อักขระที่ไม่ใช่ ASCII Space

7

stringprep.in_table_c11_c12(code)

การรวมกันของอักขระ ASCII และที่ไม่ใช่ ASCII Space

8

stringprep.in_table_c21(code)

อักขระควบคุม ASCII

9

stringprep.in_table_c22(code)

อักขระควบคุมที่ไม่ใช่ ASCII

10

stringprep.in_table_c21_c22(code)

การรวมกันของอักขระควบคุม ASCII และที่ไม่ใช่ ASCII

11

stringprep.in_table_c3(code)

ตัวละครสำหรับใช้ส่วนตัว

12

stringprep.in_table_c4(code)

จุดรหัสที่ไม่ใช่ตัวอักษร

13

stringprep.in_table_c5(code)

รหัสตัวแทน

14

stringprep.in_table_c6(code)

ไม่เหมาะสมสำหรับอักขระข้อความธรรมดา

15

stringprep.in_table_c7(code)

ไม่เหมาะสำหรับการเป็นตัวแทนตามบัญญัติ

16

stringprep.in_table_c8(code)

แสดงรหัสการเปลี่ยนแปลงคุณสมบัติ

17

stringprep.in_table_c9(code)

การแท็กตัวอักษร

18

stringprep.in_table_d1(code)

อักขระที่มีคุณสมบัติสองทิศทาง 'R' และ 'AL'

19

stringprep.in_table_d2(code)

อักขระที่มีคุณสมบัติสองทิศทาง 'L'

โค้ดตัวอย่าง

import stringprep as sp
print('\u0020') #The space character
print(sp.in_table_c11('\u0020')) #It is inside the ASCII space characters
print(sp.in_table_d2('L')) #Letter L has bidirectional property from left to right
print(sp.in_table_d1('L')) #Letter L has no bidirectional property for right to left

ผลลัพธ์

True
True
False