Groups() trong Python là gì?

Tôi muốn biết phương pháp nào sẽ cho kết quả là hai trận đấu, nghĩa là. (một, hai) và (hai, ba), ý tôi là kết hợp đệ quy

Tôi chưa đọc tài liệu, nhưng có cờ hoặc siêu ký tự nào trong python để xen kẽ giữa các trận đấu tham lam và không tham lam không?

Cảm ơn bạn

Groups() trong Python là gì?

Bartosz Zaczyński Nhóm RP trên

@raulfz Rõ ràng, mô-đun

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
3 tích hợp trong thư viện chuẩn Python không hỗ trợ kết hợp đệ quy. Bạn có thể dùng thử mô-đun của bên thứ ba, chẳng hạn như regex chẳng hạn

Theo mặc định, các bộ định lượng là tham lam, nhưng bạn có thể tạo chúng bằng cách nối thêm ký tự meta dấu chấm hỏi (

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
1)

raulfz trên

Cảm ơn bạn @Bartosz Zaczyński, hãy tiếp tục với những hướng dẫn tuyệt vời này

Tốt nhất, R

sheldon trên

Tôi không hiểu việc sử dụng

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
2 (ký tự chuỗi thô?) trong.
>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
3

Tại sao nó cần thiết?

Cảm ơn bạn

Groups() trong Python là gì?

Bartosz Zaczyński Nhóm RP trên

@sheldon Các chuỗi thô của Python vô hiệu hóa việc đánh giá các chuỗi ký tự đặc biệt được biểu thị bằng dấu gạch chéo ngược, chẳng hạn như

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
5,
>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
6 hoặc
>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
7. Trong các chuỗi thông thường, chúng được thay thế bằng các ký tự không in được, chẳng hạn như một dòng mới hoặc các ký tự khác có thể dẫn đến lỗi cú pháp

>>> print("hello\nworld")
hello
world
>>> print('My name\'s Joe.')
My name's Joe.

Mặt khác, nếu bạn muốn in các chuỗi ký tự như vậy theo nghĩa đen, thì bạn cần thoát chúng bằng một dấu gạch chéo ngược khác

________số 8

Tuy nhiên, điều đó có thể trở nên rườm rà với các biểu thức chính quy, chủ yếu bao gồm các chuỗi ký tự đặc biệt. Chuỗi thô cho phép bạn tránh xung đột tên giữa các ký tự đặc biệt, trông giống nhau giữa các chuỗi tiêu chuẩn và biểu thức chính quy nhưng có ý nghĩa khác. Ví dụ: chuỗi

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
7 trong biểu thức chính quy có nghĩa là khớp với ký tự xuống dòng thay vì chèn ngắt dòng theo nghĩa đen vào mẫu

Christopher Trudeau Nhóm RP trên

Cảm ơn phản hồi chi tiết Bartosz

@sheldon – chi tiết về thoát biểu thức chính quy, tất cả dấu gạch chéo ngược và cách sử dụng chuỗi thô sẽ được trình bày trong bài học sau bài học này

Cindy trên

Xin chào Bartosz,

Tôi thắc mắc tại sao ví dụ đầu tiên áp dụng một dấu gạch chéo ngược để thoát trong khi ví dụ thứ hai áp dụng hai dấu gạch chéo ngược?

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
0

Groups() trong Python là gì?

Bartosz Zaczyński Nhóm RP trên

@Cindy Một ký tự gạch chéo ngược ảnh hưởng đến chính xác một ký tự xuất hiện ngay bên phải. Do đó, Python sẽ thay thế hai ký tự dấu gạch chéo ngược liên tiếp (

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
6) trong một chuỗi ký tự bằng một dấu gạch chéo ngược ở đầu ra

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
2

Điều này là cần thiết vì Python coi một ký tự gạch chéo ngược đơn lẻ là phần đầu của một chuỗi ký tự thoát, chẳng hạn như

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
7 hoặc
>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
41. Không có nó, bạn sẽ gặp lỗi cú pháp, ngay cả trong các chuỗi thô đã đề cập trước đó

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

Trong ví dụ thứ hai của bạn, có hai chuỗi ký tự thoát riêng biệt

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
4

Cái đầu tiên là _______ 06 → _______ 143 và cái thứ hai là _______ 144 → _______ 145. Thoát khỏi trích dẫn đơn là bắt buộc trong trường hợp này để tránh đóng chuỗi ký tự sớm. Ngoài ra, bạn có thể đặt chuỗi trong dấu ngoặc kép để tránh thoát khỏi dấu ngoặc đơn

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
1

Christopher Trudeau Nhóm RP trên

Chào Cindy,

Ví dụ đầu tiên là thoát khỏi một dấu gạch chéo. Thông thường, “\n” là một điểm đánh dấu dành riêng cho dòng mới. Để thực sự in dấu gạch chéo ngược và sau đó là chữ “n”, bạn phải thoát khỏi dấu gạch chéo ngược

Ví dụ thứ hai là thoát khỏi hai điều. lối thoát đầu tiên là phản ứng dữ dội, lối thoát thứ hai là trích dẫn đơn. Nếu tôi đã sử dụng dấu ngoặc kép cho ví dụ đó, thì bạn sẽ không cần dấu nháy đơn thoát

Chú ý sự khác biệt

>>> print("\")
  File "<stdin>", line 1
    print("\")
          ^
SyntaxError: unterminated string literal (detected at line 1)

>>> print(r"\")
  File "<stdin>", line 1
    print(r"\")
          ^
SyntaxError: unterminated string literal (detected at line 1)
2

Cùng một kết quả, nhưng việc lựa chọn sử dụng loại trích dẫn nào cho chuỗi sẽ thay đổi những gì cần thoát

Christopher Trudeau Nhóm RP trên

Rõ ràng là @Bartosz và tôi đang trả lời cùng một lúc bằng cách sử dụng các ví dụ giống nhau, làm thế nào để đồng bộ hóa. )

Các nhóm được đặt tên trong Python là gì?

Các nhóm được sử dụng trong Python để tham chiếu các đối sánh biểu thức chính quy . Theo mặc định, các nhóm không có tên được tham chiếu theo thứ tự số bắt đầu bằng 1. Giả sử chúng ta có một biểu thức chính quy có 3 biểu thức con. Người dùng nhập ngày sinh của mình theo tháng, ngày, năm.

Việc sử dụng các nhóm trong RegEx là gì?

Chụp nhóm là một cách để coi nhiều ký tự là một đơn vị . Chúng được tạo bằng cách đặt các ký tự được nhóm bên trong một tập hợp các dấu ngoặc đơn. Ví dụ: biểu thức chính quy (con chó) tạo một nhóm duy nhất chứa các chữ cái "d" "o" và "g".

Nhóm 0 trong Python là gì?

Nhóm 0 luôn hiện diện; . Các nhóm con được đánh số từ trái sang phải, từ 1 trở lên. Các nhóm có thể được lồng vào nhau; . it's the whole RE, so match object methods all have group 0 as their default argument. Subgroups are numbered from left to right, from 1 upward. Groups can be nested; to determine the number, just count the opening parenthesis characters, going from left to right.

Sự khác biệt giữa các phương thức tìm kiếm () và Findall () trong Python là gì?

findall() được sử dụng để tìm kiếm “tất cả” các lần xuất hiện khớp với một mẫu nhất định. Ngược lại, mô-đun search() sẽ chỉ trả về lần xuất hiện đầu tiên khớp với mẫu đã chỉ định . findall() sẽ lặp qua tất cả các dòng của tệp và sẽ trả về tất cả các kết quả khớp mẫu không chồng chéo trong một bước.