2012-06-07 42 views
10

Tôi rất mới đối với trường biểu thức chính quy. Gần đây tôi đã tìm kiếm một biểu thức chính quy cho Powershell cho phép tôi khớp một thẻ html và tôi đã tìm thấy những điều sau trong trang này.Ý nghĩa của (? S) trong regex

$content -match '(?s)<table[^>]+width\s*=\s*"300px"\s*.*?>(.*?)</table>' 

Tôi đã tìm tất cả các tham chiếu biểu thức chính quy và sách (Perl và Powershell) cho ý nghĩa của (?) Không có may mắn. Nó trông giống như một điều kiện nhưng thiếu phần sau đó.

Ai đó có thể chỉ cho tôi đúng hướng cho ý nghĩa của điều này không?

Cảm ơn

+1

* Bạn đã nhận được một số câu trả lời cho câu hỏi này, nhưng chưa chấp nhận câu trả lời là chính xác hoặc hữu ích. Bạn có thể muốn đánh giá chúng và nếu có thể chấp nhận chúng là chính xác hoặc hữu ích. * –

Trả lời

12

Theo Regular Expressions reference site.

Bật "so khớp dấu chấm dòng mới" cho phần còn lại của cụm từ thông dụng . (Hương vị regex cũ hơn có thể bật lên cho toàn bộ regex.)

+1

oh .. cảm ơn rất nhiều. Tất cả các tham chiếu của tôi chỉ liệt kê ra (? I) cho trường hợp nhạy cảm, mặc dù một số tham chiếu đã đề cập đến chế độ một dòng, chế độ nhiều dòng và chế độ khoảng cách tự do quá, nhưng chúng không đề cập đến cú pháp. –

2

"?" có nghĩa là 1 hoặc 0 trận đấu. "? s" cho phép dấu chấm khớp với dòng mới. Dấu chấm thường là ký tự đại diện phù hợp với bất kỳ ký tự nào, lưu dòng mới.