Suy nghĩ đầu tiên của tôi sẽ không sử dụng cụm từ thông dụng, nhưng sử dụng thứ gì đó chia chuỗi thành một mảng trên dấu phẩy, nhưng vì bạn đã yêu cầu regex.
hầu hết các regex cho phép bạn chỉ định một kết quả tối thiểu hoặc tối đa, vì vậy một cái gì đó như thế này có thể sẽ hoạt động.
/(?:[^\,]*\,){6}([^,]*)/
này được thiết kế để phù hợp với bất kỳ số lượng nhân vật mà không phải là một dấu phẩy theo sau bởi một dấu phẩy sáu lần chính xác (?:[^,]*,){6}
- các ?:
nói đến không nắm bắt - và sau đó để phù hợp và nắm bắt được bất kỳ số lượng ký tự không phải là dấu phẩy ([^,]+)
. Bạn muốn sử dụng nhóm chụp đầu tiên.
Hãy cho tôi biết nếu bạn cần thêm thông tin.
EDIT: Tôi đã chỉnh sửa ở trên để không nắm bắt phần đầu tiên của chuỗi. Regex này hoạt động trong C# và Ruby.
Bạn có phải sử dụng regex không? Làm thế nào về một 'str.split (", ") [N - 1]' – Amarghosh
@Amarghosh Ông có thể không được sử dụng Python – CoffeeRain
Bạn không muốn làm điều đó với một regex thẳng. Bạn muốn chia nhỏ nó, hoặc tốt hơn, hãy sử dụng một mô-đun phân tích cú pháp CSV, và sau đó rút ra phần tử bạn cần từ danh sách kết quả. – tchrist