Python regex chữ và số và gạch dưới
Trong bài viết này, chúng ta sẽ tìm hiểu cách xác minh một chuỗi chỉ chứa các chữ cái, số, dấu gạch dưới và dấu gạch ngang trong Python Show
Chiến lược đầu tiên sử dụng các biểu thức chính quy. Để sử dụng thư viện re, hãy nhập nó và cài đặt nó nếu nó chưa được cài đặt. Chúng tôi sử dụng cụm từ thông dụng "^[A-Za-z0-9_-]*$" sau khi nhập thư viện lại Nếu chuỗi chứa bất kỳ ký tự đặc biệt nào ngoài Bảng chữ cái và Số, điều này sẽ trả về Sai; ví dụ 1Trong ví dụ được đưa ra bên dưới, chúng tôi đang thực hiện cùng một chương trình như trên và chúng tôi đang lấy một chuỗi khác làm đầu vào - Để thực hiện việc này, bạn cần nắm bắt các trường tên máy chủ lưu trữ, trung tâm dữ liệu và loại thiết bị trong các biến và sử dụng chúng ở đầu ra. Biểu thức chính quy sau đây sẽ làm điều này .*?_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_([a-zA-Z0-9]+)_.* Vì có ba bộ dấu ngoặc đơn nên các biến \1, \2 và \3 sẽ được điền Sau đó, bạn có thể sử dụng định dạng sau để đảm bảo đầu ra ở định dạng ưa thích của mình \2-\1-\3 Do đó, đầu ra của bạn sẽ là hostname1-Miami-filer hostname2-Tampa-switch hostname3-Boston-windows2K hostname4-Raleigh-solaris Dấu gạch nối giữa các biến cung cấp một ví dụ về văn bản cố định được chèn vào đầu ra được định dạng Ví dụ 1 hiển thị tên vùngTrong ví dụ này, bạn sử dụng biểu thức chính quy để trích xuất tên Máy chủ lưu trữ từ tên khu vực. Bạn có thể tạo biểu thức chính quy nếu bạn có thứ gì đó tương tự như tên vùng sau
Biểu thức chính quy mà bạn có thể sử dụng để nắm bắt tên máy chủ sẽ là S[0-9]+_([a-zA-Z0-9]*)[_-]HBA[0-9] Kết quả là kết quả khớp với tất cả các vùng bắt đầu bằng S, theo sau là bất kỳ tổ hợp chữ số nào , theo sau là dấu gạch dưới, tên máy chủ chứa chữ và số (myComputer1Name), dấu gạch dưới hoặc dấu gạch ngang, chữ in hoa HBA và một chữ số (0-9 . Tên máy chủ được lưu trữ trong biến \1 Biểu thức chính quy có thể được chia thành các thành phần của nó
ví dụ 2Trong ví dụ này, bỏ qua dấu gạch dưới đầu tiên "_", sau đó khớp E và mọi thứ sau đó cho đến dấu "_" thứ hai, sau đó bỏ qua mọi thứ sau đó Vùng. Z_E2FHDBS01_E1NETAPP tên máy chủ. E2FHDBS01 RegExp. . *?_(E. *?)_. *? ví dụ 3Dấu ngoặc đơn "( )" xung quanh phần cuối cùng trong Biểu thức chính quy (bên dưới) xác định phần nào là tên máy chủ. Nếu bạn muốn VSAN3 làm tên máy chủ, nó sẽ là. [a-zA-Z0-9]+_([a-zA-Z0-9]+). * Vùng. A_VSAN3_SR48KENT_A_CX2578_SPA0 tên máy chủ. SR48KENT RegExp. [a-zA-Z0-9]+_[a-zA-Z0-9]+_([a-zA-Z0-9]+). * Ví dụ 4 hiển thị một mẫu đặt tên phức tạp hơnBạn có thể tạo biểu thức chính quy nếu bạn có thứ gì đó tương tự như tên vùng sau
Biểu thức chính quy mà bạn có thể sử dụng để nắm bắt chúng sẽ là ([a-zA-Z0-9]*)_.* Biến \1 sẽ chỉ chứa myComputerName123 sau . Biểu thức chính quy có thể được chia thành các thành phần của nó
Ví dụ 5 hiển thị tên vùng không có mẫuBạn có thể tạo biểu thức chính quy nếu bạn có thứ gì đó tương tự như tên vùng sau
Biểu thức chính quy mà bạn có thể sử dụng để nắm bắt chúng sẽ là (.*?)_.* Biến \1 sẽ chứa myComputerName (trong ví dụ về tên vùng đầu tiên) hoặc myComputerName123 (trong ví dụ về tên vùng thứ hai). Do đó, biểu thức chính quy này sẽ khớp với mọi thứ trước dấu gạch dưới đầu tiên Biểu thức chính quy có thể được chia thành các thành phần của nó
Ví dụ 6 hiển thị tên máy tính có mẫuBạn có thể tạo biểu thức chính quy nếu bạn có thứ gì đó tương tự như tên vùng sau
Biểu thức chính quy mà bạn có thể sử dụng để nắm bắt chúng sẽ là .*?_.*?_([a-zA-Z0-9]*[ABT])_.* Do quy ước đặt tên vùng có nhiều mẫu hơn, nên chúng tôi có thể sử dụng biểu thức trên, biểu thức này sẽ khớp với tất cả các phiên bản của tên máy chủ (myComputerName trong ví dụ) kết thúc bằng A, B hoặc T, đặt tên máy chủ đó vào Biểu thức chính quy có thể được chia thành các thành phần của nó
Do đó, kết quả của việc này sẽ khiến biến \1 chứa bất kỳ chuỗi chữ và số nào
Ví dụ 7Vùng. myComputerName123_HBA1_Symm1_FA1 tên máy chủ. myComputerName123 RegExp. ([a-zA-Z0-9]+)_. * Ví dụ 8Ví dụ này tìm thấy mọi thứ trước _ đầu tiên Vùng. MyComputerName_HBA1_Symm1_FA1 MyComputerName123_HBA1_Symm1_FA1 tên máy chủ. Tên máy tính của tôi RegExp. (. *?)_. * Ví dụ 9Ví dụ này tìm mọi thứ sau _ đầu tiên và cho đến _ thứ hai Vùng. Z_MyComputerName_StorageName tên máy chủ. Tên máy tính của tôi RegExp. . *?_(. *?)_. *? Ví dụ 10Ví dụ này trích xuất "MyComputerName123" từ ví dụ vùng Vùng. Lưu trữ1_Switch1_MyComputerName123A_A1_FC1 Storage2_Switch2_MyComputerName123B_A2_FC2 Storage3_Switch3_MyComputerName123T_A3_FC3 tên máy chủ. MyComputerName123 RegExp. . *?_. *?_([a-zA-Z0-9]+)*[ABT]_. * Ví dụ 11Vùng. Lưu trữ1_Switch1_MyComputerName123A_A1_FC1 tên máy chủ. MyComputerName123A RegExp. . *?_. *?_([a-zA-z0-9]+)_. *?_ Ví dụ 12^ (dấu tròn hoặc dấu mũ) bên trong dấu ngoặc vuông phủ định biểu thức, ví dụ: [^Ff] có nghĩa là mọi thứ trừ chữ hoa hoặc chữ thường F và [^a-z] có nghĩa là mọi thứ trừ chữ thường từ a đến z và trong trường hợp trên, mọi thứ . Câu lệnh định dạng thêm dấu "-" vào tên máy chủ đầu ra Vùng. mhs_apps44_d_A_10a0_0429 tên máy chủ. mhs-apps44-d RegExp. ([^_]+)_([AB]). *Định dạng trong OnCommand Insight . \1-\2 ([^_]+)_ ([^_]+)_([^_]+). *Định dạng trong OnCommand Insight . \1-\2-\3 Ví dụ 13Trong ví dụ này, bí danh lưu trữ được phân tách bằng "\" và biểu thức cần sử dụng "\\" để xác định rằng thực sự có "\" đang được sử dụng trong chuỗi và những ký tự đó không phải là một phần của chính biểu thức đó Dấu gạch dưới có phải là ký tự đặc biệt trong regex không?[0-9] —Chuỗi có thể chứa bất kỳ số nào trong khoảng từ 0–9. [_-] —Chuỗi có thể chứa dấu gạch dưới hoặc dấu gạch ngang. Cả dấu gạch dưới và dấu gạch ngang đều được gọi là ký tự đặc biệt . Các ký tự đặc biệt bao gồm mọi ký tự không phải chữ và số, chẳng hạn như dấu chấm câu hoặc ký hiệu.
Regex cho chữ và số là gì?Sự biểu lộ Sự miêu tả [ ] cũng có thể được sử dụng trên một loạt các ký tự được phân tách bằng ký tự – [0-9] phù hợp với bất kỳ chữ số [A-Z] khớp với bất kỳ ký tự chữ hoa nào [A-Za-z0-9] khớp với bất kỳ ký tự chữ và số nào Chữ và số và dấu gạch dưới là gì?Trong khoa học máy tính, giá trị chữ và số thường có nghĩa là ký tự đầu tiên không phải là số mà là ký tự chữ cái hoặc dấu gạch dưới . Sau đó, ký tự có thể là 0-9 , A-Z , a-z hoặc dấu gạch dưới ( _ ). và đặt nó trong ngôn ngữ phát triển của bạn.
'$' nghĩa là gì trong regex?$ có nghĩa là " Khớp với phần cuối của chuỗi " (vị trí sau ký tự cuối cùng trong chuỗi). Cả hai đều được gọi là neo và đảm bảo rằng toàn bộ chuỗi được khớp thay vì chỉ một chuỗi con. |