Hướng dẫn how to use re ignorecase in python - cách sử dụng lại bỏ qua trong python

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận This flag allows for case-insensitive matching of the Regular Expression with the given string i.e. expressions like

    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    4 will match lowercase letters, too. Generally, It’s passed as an optional argument to
    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    5.

    Trong bài viết này, chúng tôi sẽ tìm hiểu về cách sử dụng Python Regex để xác nhận tên bằng cách sử dụng ignorecase.

    • def myfunc[text, flag=re.NOFLAG]:
          return re.match[text, flag]
      
      3: Cờ này cho phép khớp không nhạy cảm với biểu thức thông thường với chuỗi đã cho, tức là các biểu thức như
      def myfunc[text, flag=re.NOFLAG]:
          return re.match[text, flag]
      
      4 cũng sẽ khớp với các chữ cái viết thường. Nói chung, nó đã được thông qua như một đối số tùy chọn cho
      def myfunc[text, flag=re.NOFLAG]:
          return re.match[text, flag]
      
      5.
    • Hãy cùng xem xét một ví dụ về một biểu mẫu mà người dùng được yêu cầu nhập tên của họ và chúng tôi phải xác nhận nó bằng Regex. Định dạng để nhập tên như sau:
    • Ông hoặc bà hoặc bà [một trong hai] theo sau là một không gian duy nhất
    • Tên, theo sau là một không gian duy nhất

    Examples:

    Input : Mr. Albus Severus Potter 
    Output : Valid
    
    Input : Lily and Mr. Harry Potter
    Output : Invalid

    Tên đệm [tùy chọn], theo sau là một không gian duy nhất Since, we are using IGNORECASE flag, the first character of First, Second, and Last name may or may not be capital.

    Họ [tùy chọn]

    Lưu ý: Vì, chúng tôi đang sử dụng cờ ignorecase, ký tự đầu tiên của tên thứ nhất, thứ hai và tên cuối cùng có thể hoặc không thể là vốn.

    Dưới đây là mã Python -

    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    6
    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    7

    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    8
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    9

    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    8
    def myfunc[text, flag=re.NOFLAG]:
        return re.match[text, flag]
    
    9

    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    0
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    1
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    2
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    3
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    4
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    5
    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    6.

    a = re.compile[r"""\d +  # the integral part
                       \.    # the decimal point
                       \d *  # some fractional digits""", re.X]
    b = re.compile[r"\d+\.\d*"]
    
    0
    result = re.match[pattern, string]
    
    2
    result = re.match[pattern, string]
    
    3
    prog = re.compile[pattern]
    result = prog.match[string]
    
    7
    prog = re.compile[pattern]
    result = prog.match[string]
    
    8
    result = re.match[pattern, string]
    
    6
    result = re.match[pattern, string]
    
    0

    result = re.match[pattern, string]
    
    8
    result = re.match[pattern, string]
    
    9
    result = re.match[pattern, string]
    
    0

    result = re.match[pattern, string]
    
    8
    >>> re.split[r'\W+', 'Words, words, words.']
    ['Words', 'words', 'words', '']
    >>> re.split[r'[\W+]', 'Words, words, words.']
    ['Words', ', ', 'words', ', ', 'words', '.', '']
    >>> re.split[r'\W+', 'Words, words, words.', 1]
    ['Words', 'words, words.']
    >>> re.split['[a-f]+', '0a3B9', flags=re.IGNORECASE]
    ['0', '3', '9']
    
    2
    result = re.match[pattern, string]
    
    0

    result = re.match[pattern, string]
    
    8
    >>> re.split[r'\W+', 'Words, words, words.']
    ['Words', 'words', 'words', '']
    >>> re.split[r'[\W+]', 'Words, words, words.']
    ['Words', ', ', 'words', ', ', 'words', '.', '']
    >>> re.split[r'\W+', 'Words, words, words.', 1]
    ['Words', 'words, words.']
    >>> re.split['[a-f]+', '0a3B9', flags=re.IGNORECASE]
    ['0', '3', '9']
    
    5
    result = re.match[pattern, string]
    
    0

    result = re.match[pattern, string]
    
    8
    >>> re.split[r'\W+', 'Words, words, words.']
    ['Words', 'words', 'words', '']
    >>> re.split[r'[\W+]', 'Words, words, words.']
    ['Words', ', ', 'words', ', ', 'words', '.', '']
    >>> re.split[r'\W+', 'Words, words, words.', 1]
    ['Words', 'words, words.']
    >>> re.split['[a-f]+', '0a3B9', flags=re.IGNORECASE]
    ['0', '3', '9']
    
    8
    result = re.match[pattern, string]
    
    0

    Output:

    Valid
    Invalid
    Valid
    valid
    

    Mã nguồn: lib/re/ Lib/re/

    Mô -đun này cung cấp các hoạt động khớp biểu thức thường xuyên tương tự như các hoạt động được tìm thấy trong Perl.

    Cả hai mẫu và chuỗi sẽ được tìm kiếm có thể là chuỗi Unicode [

    Valid
    Invalid
    Valid
    valid
    
    00] cũng như các chuỗi 8 bit [
    Valid
    Invalid
    Valid
    valid
    
    01]. Tuy nhiên, các chuỗi unicode và chuỗi 8 bit không thể được trộn lẫn: nghĩa là, bạn không thể khớp với một chuỗi unicode với mẫu byte hoặc ngược lại; Tương tự, khi yêu cầu thay thế, chuỗi thay thế phải cùng loại với cả mẫu và chuỗi tìm kiếm.

    Biểu thức chính quy sử dụng ký tự dấu gạch chéo ngược [

    Valid
    Invalid
    Valid
    valid
    
    02] để biểu thị các hình thức đặc biệt hoặc cho phép các ký tự đặc biệt được sử dụng mà không cần gọi ý nghĩa đặc biệt của chúng. Điều này va chạm với việc sử dụng Python sườn của cùng một nhân vật cho cùng một mục đích trong các chữ viết; Ví dụ, để phù hợp với một dấu gạch chéo ngược theo nghĩa đen, người ta có thể phải viết
    Valid
    Invalid
    Valid
    valid
    
    03 dưới dạng chuỗi mẫu, bởi vì biểu thức thông thường phải là
    Valid
    Invalid
    Valid
    valid
    
    04 và mỗi dấu gạch chéo ngược phải được biểu thị dưới dạng
    Valid
    Invalid
    Valid
    valid
    
    04 trong một chuỗi python thông thường theo nghĩa đen. Ngoài ra, xin lưu ý rằng bất kỳ trình tự thoát hiểm không hợp lệ nào trong việc sử dụng Python, của dấu gạch chéo ngược trong các chữ viết hiện tại sẽ tạo ra
    Valid
    Invalid
    Valid
    valid
    
    06 và trong tương lai, điều này sẽ trở thành
    Valid
    Invalid
    Valid
    valid
    
    07. Hành vi này sẽ xảy ra ngay cả khi đó là một chuỗi thoát hợp lệ cho một biểu thức chính quy.

    Giải pháp là sử dụng ký hiệu chuỗi thô Python sườn cho các mẫu biểu thức thông thường; Backslashes không được xử lý theo bất kỳ cách đặc biệt nào trong một chuỗi theo nghĩa đen được đặt trước với

    Valid
    Invalid
    Valid
    valid
    
    08. Vì vậy,
    Valid
    Invalid
    Valid
    valid
    
    09 là một chuỗi hai ký tự chứa
    Valid
    Invalid
    Valid
    valid
    
    02 và
    Valid
    Invalid
    Valid
    valid
    
    11, trong khi
    Valid
    Invalid
    Valid
    valid
    
    12 là một chuỗi một ký tự có chứa một dòng mới. Thông thường các mẫu sẽ được thể hiện trong mã Python bằng cách sử dụng ký hiệu chuỗi thô này.

    Điều quan trọng cần lưu ý là hầu hết các hoạt động biểu thức chính quy đều có sẵn dưới dạng các hàm và phương thức cấp độ mô-đun trên các biểu thức được biên dịch thông thường. Các chức năng là các phím tắt mà don don yêu cầu bạn biên dịch một đối tượng Regex trước, nhưng bỏ lỡ một số tham số tinh chỉnh.compiled regular expressions. The functions are shortcuts that don’t require you to compile a regex object first, but miss some fine-tuning parameters.

    Xem thêm

    Mô-đun Regex của bên thứ ba, có API tương thích với mô-đun thư viện tiêu chuẩn

    Valid
    Invalid
    Valid
    valid
    
    13, nhưng cung cấp chức năng bổ sung và hỗ trợ Unicode kỹ lưỡng hơn.

    Biểu thức thông thường cú pháp

    Một biểu thức chính quy [hoặc re] chỉ định một tập hợp các chuỗi phù hợp với nó; Các hàm trong mô -đun này cho phép bạn kiểm tra xem một chuỗi cụ thể có khớp với biểu thức chính quy nhất định không [hoặc nếu một biểu thức chính quy nhất định khớp với một chuỗi cụ thể, đi xuống cùng một điều].

    Biểu thức thông thường có thể được nối để tạo thành các biểu thức thông thường mới; Nếu A và B đều là biểu thức chính quy, thì AB cũng là một biểu thức chính quy. Nói chung, nếu chuỗi P khớp với A và một chuỗi Q khác khớp với B, chuỗi PQ sẽ khớp với AB. Điều này giữ trừ khi A hoặc B chứa các hoạt động ưu tiên thấp; điều kiện biên giữa a và b; hoặc đã đánh số tài liệu tham khảo nhóm. Do đó, các biểu thức phức tạp có thể dễ dàng được xây dựng từ các biểu thức nguyên thủy đơn giản hơn như các biểu thức được mô tả ở đây. Để biết chi tiết về lý thuyết và thực hiện các biểu thức thường xuyên, hãy tham khảo cuốn sách Friedl [FRIE09] hoặc gần như bất kỳ cuốn sách giáo khoa nào về xây dựng trình biên dịch.[Frie09], or almost any textbook about compiler construction.

    Một lời giải thích ngắn gọn về định dạng của các biểu thức thường xuyên sau. Để biết thêm thông tin và một bài thuyết trình nhẹ nhàng hơn, hãy tham khảo ý kiến ​​biểu thức thường xuyên.Regular Expression HOWTO.

    Biểu thức chính quy có thể chứa cả các ký tự đặc biệt và thông thường. Hầu hết các ký tự thông thường, như

    Valid
    Invalid
    Valid
    valid
    
    14,
    Valid
    Invalid
    Valid
    valid
    
    15 hoặc
    Valid
    Invalid
    Valid
    valid
    
    16, là các biểu thức chính quy đơn giản nhất; Họ chỉ đơn giản là phù hợp với chính họ. Bạn có thể kết hợp các ký tự thông thường, vì vậy
    Valid
    Invalid
    Valid
    valid
    
    17 khớp với chuỗi
    Valid
    Invalid
    Valid
    valid
    
    18. .

    Một số ký tự, như

    Valid
    Invalid
    Valid
    valid
    
    21 hoặc
    Valid
    Invalid
    Valid
    valid
    
    22, là đặc biệt. Các ký tự đặc biệt là đại diện cho các lớp các ký tự thông thường hoặc ảnh hưởng đến cách các biểu thức chính quy xung quanh chúng được giải thích.

    Các toán tử hoặc định lượng lặp lại [

    Valid
    Invalid
    Valid
    valid
    
    23,
    Valid
    Invalid
    Valid
    valid
    
    24,
    Valid
    Invalid
    Valid
    valid
    
    25,
    Valid
    Invalid
    Valid
    valid
    
    26, v.v.] không thể được lồng trực tiếp. Điều này tránh sự mơ hồ với hậu tố biến đổi không màu xanh lá cây
    Valid
    Invalid
    Valid
    valid
    
    25 và với các công cụ sửa đổi khác trong các triển khai khác. Để áp dụng sự lặp lại thứ hai cho sự lặp lại bên trong, dấu ngoặc đơn có thể được sử dụng. Ví dụ: biểu thức
    Valid
    Invalid
    Valid
    valid
    
    28 khớp với bất kỳ bội số nào của sáu ký tự
    Valid
    Invalid
    Valid
    valid
    
    15.

    Các nhân vật đặc biệt là:

    Valid
    Invalid
    Valid
    valid
    
    30

    [Dot.] Trong chế độ mặc định, điều này phù hợp với bất kỳ ký tự nào ngoại trừ dòng mới. Nếu cờ

    Valid
    Invalid
    Valid
    valid
    
    31 đã được chỉ định, điều này phù hợp với bất kỳ ký tự nào bao gồm cả dòng mới.

    Valid
    Invalid
    Valid
    valid
    
    32

    .

    Valid
    Invalid
    Valid
    valid
    
    34

    Khớp với phần cuối của chuỗi hoặc ngay trước dòng mới ở cuối chuỗi và ở chế độ

    Valid
    Invalid
    Valid
    valid
    
    33 cũng khớp với một dòng mới.
    Valid
    Invalid
    Valid
    valid
    
    36 phù hợp với cả ‘foo, và‘ foobar, trong khi biểu thức thông thường
    Valid
    Invalid
    Valid
    valid
    
    37 chỉ khớp với ‘foo. Thú vị hơn, việc tìm kiếm
    Valid
    Invalid
    Valid
    valid
    
    38 trong
    Valid
    Invalid
    Valid
    valid
    
    39 khớp với ‘FOO2, thông thường, nhưng‘ FOO1, ở chế độ
    Valid
    Invalid
    Valid
    valid
    
    33; Tìm kiếm một
    Valid
    Invalid
    Valid
    valid
    
    34 trong
    Valid
    Invalid
    Valid
    valid
    
    42 sẽ tìm thấy hai khớp [trống]: một ngay trước dòng mới và một ở cuối chuỗi.

    Valid
    Invalid
    Valid
    valid
    
    23

    Làm cho RE kết quả khớp với 0 hoặc nhiều sự lặp lại của RE trước đó, càng nhiều lần lặp lại càng tốt.

    Valid
    Invalid
    Valid
    valid
    
    44 sẽ phù hợp với ‘A,’ ab, hoặc ‘A, sau đó là bất kỳ số lượng‘ Biên.

    Valid
    Invalid
    Valid
    valid
    
    24

    Làm cho RE kết quả phù hợp với 1 hoặc nhiều sự lặp lại của Re trước.

    Valid
    Invalid
    Valid
    valid
    
    46 sẽ phù hợp với ’A, sau đó là bất kỳ số lượng‘ Biên nào; Nó sẽ không chỉ phù hợp với ’a.

    Valid
    Invalid
    Valid
    valid
    
    25

    Làm cho kết quả RE khớp với 0 hoặc 1 lần lặp lại của Re trước.

    Valid
    Invalid
    Valid
    valid
    
    48 sẽ phù hợp với ‘A, hoặc‘ AB.

    Valid
    Invalid
    Valid
    valid
    
    49,
    Valid
    Invalid
    Valid
    valid
    
    50,
    Valid
    Invalid
    Valid
    valid
    
    51

    Các định lượng

    Valid
    Invalid
    Valid
    valid
    
    52,
    Valid
    Invalid
    Valid
    valid
    
    53 và
    Valid
    Invalid
    Valid
    valid
    
    54 đều tham lam; Họ phù hợp với văn bản càng nhiều càng tốt. Đôi khi hành vi này không phải là mong muốn; Nếu RE
    Valid
    Invalid
    Valid
    valid
    
    55 được khớp với
    Valid
    Invalid
    Valid
    valid
    
    56, nó sẽ khớp với toàn bộ chuỗi và không chỉ
    Valid
    Invalid
    Valid
    valid
    
    57. Thêm
    Valid
    Invalid
    Valid
    valid
    
    25 sau khi bộ định lượng làm cho nó thực hiện trận đấu theo kiểu không xanh hoặc tối thiểu; Càng ít ký tự càng tốt sẽ được khớp. Sử dụng RE
    Valid
    Invalid
    Valid
    valid
    
    59 sẽ chỉ khớp với
    Valid
    Invalid
    Valid
    valid
    
    57.

    Valid
    Invalid
    Valid
    valid
    
    61,
    Valid
    Invalid
    Valid
    valid
    
    62,
    Valid
    Invalid
    Valid
    valid
    
    63

    Giống như các bộ định lượng

    Valid
    Invalid
    Valid
    valid
    
    52,
    Valid
    Invalid
    Valid
    valid
    
    53 và
    Valid
    Invalid
    Valid
    valid
    
    54, những người trong đó
    Valid
    Invalid
    Valid
    valid
    
    53 được nối cũng khớp càng nhiều lần càng tốt. Tuy nhiên, không giống như các bộ định lượng tham lam thực sự, chúng không cho phép theo dõi ngược khi biểu thức theo sau nó không khớp. Chúng được gọi là định lượng sở hữu. Ví dụ,
    Valid
    Invalid
    Valid
    valid
    
    68 sẽ khớp với
    Valid
    Invalid
    Valid
    valid
    
    69 vì
    Valid
    Invalid
    Valid
    valid
    
    70 sẽ phù hợp với tất cả 4
    Valid
    Invalid
    Valid
    valid
    
    15s, nhưng, khi lần cuối
    Valid
    Invalid
    Valid
    valid
    
    15 cuối cùng gặp phải, biểu thức được quay lại để cuối cùng
    Valid
    Invalid
    Valid
    valid
    
    70 kết thúc.
    Valid
    Invalid
    Valid
    valid
    
    15 cuối cùng. Tuy nhiên, khi
    Valid
    Invalid
    Valid
    valid
    
    77 được sử dụng để khớp với
    Valid
    Invalid
    Valid
    valid
    
    69,
    Valid
    Invalid
    Valid
    valid
    
    79 sẽ khớp với tất cả 4
    Valid
    Invalid
    Valid
    valid
    
    15, nhưng khi cuối cùng
    Valid
    Invalid
    Valid
    valid
    
    15 không tìm thấy bất kỳ ký tự nào để phù hợp, biểu thức không thể được quay lại và do đó sẽ không khớp được.
    Valid
    Invalid
    Valid
    valid
    
    82,
    Valid
    Invalid
    Valid
    valid
    
    83 và
    Valid
    Invalid
    Valid
    valid
    
    84 tương đương với
    Valid
    Invalid
    Valid
    valid
    
    85,
    Valid
    Invalid
    Valid
    valid
    
    86 và
    Valid
    Invalid
    Valid
    valid
    
    87 tương ứng.

    Valid
    Invalid
    Valid
    valid
    
    88

    Chỉ định rằng chính xác các bản sao m của RE trước đó phải được khớp; Ít trận đấu hơn khiến toàn bộ RE không phù hợp. Ví dụ:

    Valid
    Invalid
    Valid
    valid
    
    89 sẽ khớp chính xác sáu ký tự ____115, nhưng không phải năm ký tự.

    Valid
    Invalid
    Valid
    valid
    
    26

    Làm cho RE kết quả phù hợp từ M đến N lặp lại của RE trước đó, cố gắng khớp với càng nhiều lần lặp lại càng tốt. Ví dụ:

    Valid
    Invalid
    Valid
    valid
    
    92 sẽ khớp từ 3 đến 5
    Valid
    Invalid
    Valid
    valid
    
    15 ký tự. Bỏ qua M chỉ định giới hạn dưới bằng 0 và bỏ qua N chỉ định giới hạn trên vô hạn. Ví dụ,
    Valid
    Invalid
    Valid
    valid
    
    94 sẽ khớp với
    Valid
    Invalid
    Valid
    valid
    
    95 hoặc một nghìn ký tự
    Valid
    Invalid
    Valid
    valid
    
    15 theo sau là
    Valid
    Invalid
    Valid
    valid
    
    97, nhưng không phải
    Valid
    Invalid
    Valid
    valid
    
    98. Dấu phẩy có thể không bị bỏ qua hoặc công cụ sửa đổi sẽ bị nhầm lẫn với mẫu được mô tả trước đó.

    Valid
    Invalid
    Valid
    valid
    
    99

    Làm cho RE kết quả phù hợp từ M đến N lặp lại của Re trước, cố gắng khớp với càng ít sự lặp lại càng tốt. Đây là phiên bản không màu xanh của bộ định lượng trước đó. Ví dụ: trên chuỗi 6 ký tự

    >>> import re
    >>> m = re.search['[?>> import re
    >>> m = re.search['[?

    Bài Viết Liên Quan

    Chủ Đề