Tôi đang cố gắng phân tích các thẻ TD không tham lam. Tôi bắt đầu với một cái gì đó như thế này:Regex Non-Greedy
<TD>stuff<TD align="right">More stuff<TD align="right>Other stuff<TD>things<TD>more things
Tôi đang sử dụng dưới đây như là regex của tôi:
Regex.Split(tempS, @"\<TD[.\s]*?\>");
Các hồ sơ trở lại như dưới đây:
""
"stuff<TD align="right">More stuff<TD align="right>Other stuff"
"things"
"more things"
Tại sao nó không tách kết quả đầy đủ đầu tiên (kết quả bắt đầu bằng "nội dung")? Làm thế nào tôi có thể điều chỉnh regex để phân chia trên tất cả các trường hợp của thẻ TD có hoặc không có tham số?
Xin xem http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
'.' chỉ có nghĩa là một dấu chấm đen trong lớp nhân vật '[.]', không phải 'bất kỳ ký tự nào. Bạn _may_ có nhiều thành công hơn với '[^>] *', _but_ nó sẽ phá vỡ một '>' trong một thuộc tính (đó là một trong những lý do tại sao chúng ta thường xem xét các trình phân tích cú pháp thay vì các regexes để thao tác html & xml). – Wrikken
@Wrikken HTML ở đây khá tĩnh. Không có nhiều biến thể và tôi biết regex sẽ làm việc cho nó. Tôi không đi theo con đường phân tích cú pháp vì điều đó. Có cách nào để làm. ký tự có nghĩa là 'bất kỳ ký tự' nào kể cả khoảng trắng? – steventnorris