Hướng dẫn which regex matches only a whitespace character in python? - regex nào chỉ khớp với một ký tự khoảng trắng trong python?
Trong python3, làm cách nào để tôi khớp chính xác ký tự khoảng trắng chứ không phải newline \ n hoặc tab \ t? Show
Tôi đã thấy câu trả lời 8 từ không gian kết hợp Regex không phải là câu trả lời, nhưng đối với ví dụ sau, nó không hoạt động:
Kết quả là 9, đó là dòng mới phù hợp.
hỏi ngày 2 tháng 7 năm 2016 lúc 16:53Jul 2, 2016 at 16:53
1 Không cần các nhóm đặc biệt. Chỉ cần tạo một regex với một ký tự không gian. Nhân vật không gian không có bất kỳ ý nghĩa đặc biệt nào, nó chỉ có nghĩa là "khớp với một không gian".
Vì vậy, đối với trường hợp của bạn
Sẽ cho
Đã trả lời ngày 2 tháng 7 năm 2016 lúc 17:53Jul 2, 2016 at 17:53
Cộng hưởngResonance 3.0892 Huy hiệu vàng15 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges15 silver badges20 bronze badges 2 Nếu bạn muốn khớp với 1 hoặc nhiều ký chars trắng ngoại trừ việc sử dụng dòng mới và sử dụng tab
0 phù hợp với bất kỳ char nào không phải là không gian trắng = bất kỳ char nào là khoảng trắng. Tuy nhiên, vì lớp ký tự là một lớp phủ định, khi bạn thêm các ký tự vào đó, chúng bị loại khỏi khớp.Demo Python:
Một số cân nhắc thêm: 1 khớp với 2 nếu cờ ASCII được sử dụng. Vì vậy, nếu bạn có kế hoạch chỉ khớp với ASCII, bạn cũng có thể sử dụng 3 để loại trừ các ký tự bạn muốn. Nếu bạn cần làm việc với các chuỗi Unicode, giải pháp trên là một loại khả thi.Đã trả lời ngày 2 tháng 7 năm 2016 lúc 16:55Jul 2, 2016 at 16:55
Wiktor Stribiżewwiktor StribiżewWiktor Stribiżew 580K34 Huy hiệu vàng399 Huy hiệu bạc503 Huy hiệu đồng34 gold badges399 silver badges503 bronze badges
Biểu thức chính quy là một ngôn ngữ mạnh mẽ để phù hợp với các mẫu văn bản. Trang này đưa ra một giới thiệu cơ bản về các biểu thức thường xuyên đủ cho các bài tập Python của chúng tôi và cho thấy cách các biểu thức thường xuyên hoạt động trong Python. Mô -đun Python Hồi Re RE cung cấp hỗ trợ biểu thức chính quy. Trong Python, một tìm kiếm biểu thức thông thường thường được viết là:
Phương thức RE.Search () có một mẫu biểu thức chính quy và một chuỗi và tìm kiếm cho mẫu đó trong chuỗi. Nếu tìm kiếm thành công, search () trả về một đối tượng khớp hoặc không có đối tượng khác. Do đó, tìm kiếm thường ngay lập tức theo sau bởi một câu chuyện if để kiểm tra xem tìm kiếm có thành công hay không, như được hiển thị trong ví dụ sau đây tìm kiếm mẫu ‘Word: Sau đó là một từ 3 chữ cái (chi tiết bên dưới):
Mã 4 lưu trữ kết quả tìm kiếm trong một biến có tên 5. Sau đó, if-satement kiểm tra sự phù hợp-nếu đúng, tìm kiếm đã thành công và 6 là văn bản phù hợp (ví dụ: từ: cat,). Mặt khác, nếu trận đấu là sai (không có gì cụ thể hơn), thì tìm kiếm không thành công và không có văn bản phù hợp. 7 Khi bắt đầu chuỗi mẫu chỉ định chuỗi Python Raw Raw, đi qua các dấu gạch chéo ngược mà không thay đổi rất tiện dụng cho các biểu thức thông thường. Tôi khuyên bạn nên luôn viết các chuỗi mẫu với 7 chỉ là thói quen.Các mẫu cơ bảnSức mạnh của các biểu thức chính quy là chúng có thể chỉ định các mẫu, không chỉ các ký tự cố định. Dưới đây là các mẫu cơ bản nhất phù hợp với ký tự đơn lẻ:
Ví dụ cơ bảnTrò đùa: Bạn gọi một con lợn với ba mắt là gì? Piiig! Các quy tắc cơ bản của tìm kiếm biểu thức chính quy cho một mẫu trong một chuỗi là:
Sự lặp lạiMọi thứ trở nên thú vị hơn khi bạn sử dụng 0 và 1 để chỉ định sự lặp lại trong mẫu
Bên trái và lớn nhấtĐầu tiên, tìm kiếm tìm thấy sự phù hợp ngoài cùng bên trái cho mẫu và thứ hai nó cố gắng sử dụng càng nhiều chuỗi càng tốt - tức là 0 và 1 đi càng xa càng tốt ( 0 và 1 được cho là tham lam).Ví dụ lặp lại
Ví dụ về emailGiả sử bạn muốn tìm địa chỉ email bên trong chuỗi máy rửa chén khỉ màu tím. Chúng tôi sẽ sử dụng điều này như một ví dụ đang chạy để chứng minh các tính năng biểu thức chính quy hơn. Ở đây, một nỗ lực bằng cách sử dụng mẫu r triệt \ w+@\ w+,: 0Tìm kiếm không nhận được toàn bộ địa chỉ email trong trường hợp này vì 5 không khớp với 0 hoặc 4 trong địa chỉ. Chúng tôi sẽ khắc phục điều này bằng cách sử dụng các tính năng biểu thức thông thường bên dưới.Dấu ngoặc vuôngCác dấu ngoặc vuông có thể được sử dụng để chỉ ra một tập hợp các ký tự, do đó 2 khớp với ’A, hoặc’ b, hoặc ’c. Các mã 5, 1, v.v. làm việc bên trong khung vuông với một ngoại lệ mà dấu chấm ( 4) chỉ có nghĩa là một dấu chấm theo nghĩa đen. Đối với vấn đề email, dấu ngoặc vuông là một cách dễ dàng để thêm 4 và 0 vào tập hợp các ký tự có thể xuất hiện xung quanh 5 với mẫu 9 để lấy toàn bộ địa chỉ email: 1. Để sử dụng dấu gạch ngang mà không chỉ ra một phạm vi, hãy đặt dấu gạch ngang cuối cùng, ví dụ: 1. Một chiếc Caret (UP-Hat) ( 0) khi bắt đầu một khung vuông đặt đảo ngược nó, do đó, 3 có nghĩa là bất kỳ ký tự nào ngoại trừ ’A, hoặc’ b.Tính năng nhóm nhóm của nhóm của một biểu thức thông thường cho phép bạn chọn ra các phần của văn bản phù hợp. Giả sử đối với vấn đề email mà chúng tôi muốn trích xuất tên người dùng và máy chủ riêng biệt. Để làm điều này, hãy thêm dấu ngoặc đơn 4 xung quanh tên người dùng và máy chủ trong mẫu, như thế này: 5. Trong trường hợp này, dấu ngoặc đơn không thay đổi những gì mẫu sẽ phù hợp, thay vào đó họ thiết lập các nhóm logic logic bên trong văn bản phù hợp. Trên một tìm kiếm thành công, 6 là văn bản phù hợp tương ứng với dấu ngoặc đơn 1 bên trái và 7 là văn bản tương ứng với dấu ngoặc đơn 2 bên trái. Đồng bằng 6 vẫn là toàn bộ văn bản trận đấu như bình thường. 2Một quy trình công việc phổ biến với các biểu thức thông thường là bạn viết một mẫu cho thứ bạn đang tìm kiếm, thêm các nhóm dấu ngoặc đơn để trích xuất các phần bạn muốn. Findall 9 có lẽ là chức năng mạnh nhất trong mô -đun 0. Trên đây, chúng tôi đã sử dụng 1 để tìm kết hợp đầu tiên cho một mẫu. 9 tìm thấy tất cả các trận đấu và trả về chúng như một danh sách các chuỗi, với mỗi chuỗi đại diện cho một trận đấu. 3Findall với các tập tinĐối với các tệp, bạn có thể có thói quen viết một vòng lặp để lặp lại các dòng của tệp và sau đó bạn có thể gọi findall () trên mỗi dòng. Thay vào đó, hãy để findall () làm việc lặp lại cho bạn - tốt hơn nhiều! Chỉ cần cung cấp toàn bộ văn bản tệp vào findall () và để nó trả về danh sách tất cả các trận đấu trong một bước duy nhất (nhớ lại rằng 3 trả về toàn bộ văn bản của một tệp trong một chuỗi): 4Findall và các nhómCơ chế nhóm 4 có thể được kết hợp với 9. Nếu mẫu bao gồm 2 nhóm dấu ngoặc đơn trở lên, thì thay vì trả về danh sách các chuỗi, 9 trả về danh sách *bộ dữ liệu *. Mỗi tuple đại diện cho một trận đấu của mẫu và bên trong bộ tu là nhóm (1), nhóm (2) .. dữ liệu. Vì vậy, nếu 2 nhóm dấu ngoặc đơn được thêm vào mẫu email, thì findall () trả về một danh sách các bộ dữ liệu, mỗi độ dài 2 chứa tên người dùng và máy chủ, ví dụ: (‘Alice,‘ Google.com,). 5Khi bạn có danh sách các bộ dữ liệu, bạn có thể lặp qua nó để thực hiện một số tính toán cho mỗi bộ. Nếu mẫu không bao gồm dấu ngoặc đơn, thì 9 sẽ trả về một danh sách các chuỗi được tìm thấy như trong các ví dụ trước đó. Nếu mẫu bao gồm một bộ dấu ngoặc đơn, thì 9 sẽ trả về một danh sách các chuỗi tương ứng với nhóm duy nhất đó. (Tính năng tùy chọn tối nghĩa: Đôi khi bạn có các nhóm Paren ____994 trong mẫu, nhưng bạn không muốn trích xuất. kết quả.)Quy trình làm việc và gỡ lỗiCác mẫu biểu thức thông thường đóng gói rất nhiều ý nghĩa vào một vài ký tự, nhưng chúng rất dày đặc, bạn có thể dành nhiều thời gian để gỡ lỗi các mẫu của mình. Thiết lập thời gian chạy của bạn để bạn có thể chạy một mẫu và in những gì nó phù hợp dễ dàng, ví dụ bằng cách chạy nó trên một văn bản thử nghiệm nhỏ và in kết quả của 9. Nếu mẫu không phù hợp, hãy thử làm suy yếu mẫu, loại bỏ các phần của nó để bạn có quá nhiều trận đấu. Khi nó không phù hợp, bạn có thể thực hiện bất kỳ tiến bộ nào vì không có gì cụ thể để nhìn vào. Một khi nó phù hợp với quá nhiều, thì bạn có thể làm việc để thắt chặt nó tăng dần để đánh vào những gì bạn muốn.Tùy chọnCác chức năng 0 có các tùy chọn để sửa đổi hành vi của khớp mẫu. Cờ tùy chọn được thêm vào như một đối số bổ sung cho 04 hoặc 9, v.v., ví dụ: 06.
Tham lam so với không tham lam (tùy chọn)Đây là phần tùy chọn cho thấy một kỹ thuật biểu hiện thông thường tiên tiến hơn không cần thiết cho các bài tập. Giả sử bạn có văn bản với các thẻ trong đó: 6Giả sử bạn đang cố gắng khớp với từng thẻ với mẫu 17 - nó phù hợp với điều gì đầu tiên?Kết quả là một chút đáng ngạc nhiên, nhưng khía cạnh tham lam của 10 khiến nó phù hợp với toàn bộ 19 và 20 là một trận đấu lớn. Vấn đề là 10 đi xa đến mức có thể, thay vì dừng lại ở lần đầu tiên 22 (hay còn gọi là đó là sự tham lam của Hồi giáo).Có một phần mở rộng cho biểu thức chính quy trong đó bạn thêm 4 ở cuối, chẳng hạn như 24 hoặc 25, thay đổi chúng thành không màu xanh lá cây. Bây giờ họ dừng lại ngay khi họ có thể. Vì vậy, mẫu 26 sẽ chỉ nhận được 27 là trận đấu đầu tiên và 28 là trận đấu thứ hai, và lần lượt nhận được mỗi cặp 29. Phong cách thường là bạn sử dụng 24, và ngay sau đó, cái nhìn đúng của nó cho một số điểm đánh dấu cụ thể ( 22 trong trường hợp này) buộc kết thúc lần chạy 24.Phần mở rộng 33 có nguồn gốc từ Perl và các biểu thức chính quy bao gồm các phần mở rộng Perl, được gọi là các biểu thức thông thường tương thích của Perl - PCRE. Python bao gồm hỗ trợ PCRE. Nhiều dòng lệnh sử dụng, vv có một lá cờ trong đó họ chấp nhận các mẫu PCRE.Một kỹ thuật cũ hơn nhưng được sử dụng rộng rãi để mã hóa ý tưởng này về tất cả các ký tự này ngoại trừ dừng tại X X sử dụng kiểu khung vuông. Đối với những điều trên, bạn có thể viết mẫu, nhưng thay vì 10 để có được tất cả các ký tự dấu ngoặc).Không có gì trong phần trước nên được coi là có nghĩa là bạn có thể phân tích HTML với các biểu thức thông thường, bởi vì bạn có thể. Thay thế (tùy chọn)Hàm 38 tìm kiếm tất cả các phiên bản của mẫu trong chuỗi đã cho và thay thế chúng. Chuỗi thay thế có thể bao gồm 39, 40 đề cập đến văn bản từ 41, 42, v.v. từ văn bản phù hợp ban đầu.Ở đây, một ví dụ tìm kiếm tất cả các địa chỉ email và thay đổi chúng để giữ người dùng ( 43) nhưng có yo-yo-dyne.com làm máy chủ. 7Tập thể dụcĐể thực hành các biểu thức thường xuyên, hãy xem bài tập tên em bé. Cũng thấyPython Biên tập viên biểu thức chính quy. Trừ khi có ghi chú khác, nội dung của trang này được cấp phép theo giấy phép Creative Commons Attribution 3.0 và các mẫu mã được cấp phép theo giấy phép Apache 2.0. Regex nào đại diện cho bất kỳ ký tự khoảng trắng nào?\ S là viết tắt của nhân vật Whitespace.Một lần nữa, những nhân vật này thực sự bao gồm, phụ thuộc vào hương vị regex.Trong tất cả các hương vị được thảo luận trong hướng dẫn này, nó bao gồm [\ t \ r \ n \ f].Đó là: \ s khớp với một không gian, một tab, trả về vận chuyển, nguồn cấp dữ liệu hoặc nguồn cấp dữ liệu biểu mẫu. stands for “whitespace character”. Again, which characters this actually includes, depends on the regex flavor. In all flavors discussed in this tutorial, it includes [ \t\r\n\f]. That is: \s matches a space, a tab, a carriage return, a line feed, or a form feed.
Nhân vật Whitespace trong Python là gì?Các ký tự khoảng trắng trong Python là gì?Trong Python, các ký tự được sử dụng cho khoảng cách được gọi là ký tự khoảng trắng.Chúng bao gồm dòng mới, không gian, tab, trả lại vận chuyển, thức ăn, v.v.characters that are used for spacing are called as whitespace characters. They include newline, spaces, tabs, carriage return, feed, etc.
Làm cách nào để khớp với một ký tự ngoại trừ không gian trong Regex?Bạn có thể kết hợp một ký tự không gian chỉ với ký tự không gian;[^] phù hợp với bất cứ điều gì ngoại trừ một nhân vật không gian.[^ ] matches anything but a space character.
Làm thế nào để bạn sử dụng khoảng trắng trong regex?Nhân vật Regex phổ biến nhất để tìm thấy khoảng trắng là \ s và \ s+.Sự khác biệt giữa các ký tự regex này là \ s đại diện cho một ký tự khoảng trắng duy nhất trong khi \ s+ đại diện cho nhiều khoảng trắng trong một chuỗi.\s and \s+ . The difference between these regex characters is that \s represents a single whitespace character while \s+ represents multiple whitespaces in a string. |