Sử dụng RegexOptions.Singleline
Mình muốn lấy giá trị nằm trong 2 đoạn <tag> và </tag>
string value = Regex.Match("<tag>av</tag>", @"<tag>(.*?)</tag>").Groups[1].Value;
Kết quả: value = 'av'
Đoạn code trên sẽ chạy ok nếu giá trị nằm trong <tag> và </tag> không có ký tự \n. Vì (.*?) chỉ khớp với các ký tự bất kỳ trừ ký tự \n.
string value = Regex.Match("<tag>av\n</tag>", @"<tag>(.*?)</tag>").Groups[1].Value;
Kết quả : value =''
Sử dụng option: RegexOptions.Singleline sẽ làm cách dùng ký tự dot (.) tính luôn cả giá trị \n.
Specifies single-line mode. Changes the meaning of the dot (.) so
it matches every character (instead of every character except \n).
string value = Regex.Match("<tag>av\n</tag>", @"<tag>(.*?)</tag>", RegexOptions.Singleline).Groups[1].Value;
Kết quả: value= 'av\n'
Thứ Tư, 27 tháng 2, 2013
So khớp với ký tự bất kỳ và tính luôn cả ký tự xuống dòng \n trong Regex C#
Đăng ký:
Đăng Nhận xét
(
Atom
)
Không có nhận xét nào :
Đăng nhận xét