Ok bạn có một chuỗi và bạn muốn trích xuất url từ chuỗi đó. Dưới đây là hai cách bạn không thể thực hiện được. Để có được một liên kết đơn trong văn bản hoặc Chuỗi, người ta có thể đơn giản chuyển chuỗi sang phương thức bên dưới bằng cách sử dụng Regex p Parent để xác định url.
1 2 3 4 5 6 7 8 9 | public string GetLink(string message) { string link = ""; Regex urlRx = new Regex(@"((https?|ftp|file)://|www.)[A-Za-z0-9.-]+(/[A-Za-z0-9?&=;+!'()*-._~%]*)*", RegexOptions.IgnoreCase); MatchCollection matches = urlRx.Matches(message); link = matches[0].Value; return link; } |
Tuy nhiên, nếu tồn tại nhiều url trong một chuỗi thì chúng ta có thể trích xuất các liên kết và trả về một danh sách các url.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public List<string> GetLinks(string message) { List<string> list = new List<string>(); Regex urlRx = new Regex(@"((https?|ftp|file)://|www.)[A-Za-z0-9.-]+(/[A-Za-z0-9?&=;+!'()*-._~%]*)*", RegexOptions.IgnoreCase); MatchCollection matches = urlRx.Matches(message); foreach (Match match in matches) { list.Add(match.Value); } return list; } |
Bây giờ hãy nói rằng chúng tôi chuyển một chuỗi có nhiều url như bên dưới
1 2 3 4 5 6 | List<string> list = GetLinks("Some text http://www.google.com and thats not all. Here http://www.phonearena.com is another text"); for (int i = 0; i < list.Count; i++) { Console.WriteLine("Url Found: " + list[i].ToString()); } |
Đầu ra: Đã tìm thấy Url: http://www.google.com
Tìm thấy Url: http://www.phonearena.com
Bây giờ hãy nói rằng chúng tôi chuyển một chuỗi với một url như bên dưới
1 2 3 | var urlString = GetLink("I know what you did last summer as shown here: http://www.google.com and thats not all"); Console.WriteLine(urlString); |
Ở trên sẽ viết http://www.google.com làm đầu ra. Đơn giản như thế!
Sau khi trích xuất url hoặc url, chúng tôi có thể đảm bảo thêm một url hợp lệ trước khi mở nó trong ứng dụng web. Methid này sẽ trả về true nếu url là một liên kết hợp lệ khác false.
1 2 3 4 | private bool IsValidUrl(string url) { return (Uri.IsWellFormedUriString(url, UriKind.Absolute)); } |
Bây giờ sử dụng phương pháp dưới đây để mở url trên thiết bị bằng Device.OpenUrl ().
1 2 3 4 5 6 | private void OpenUrl(string url) { if (IsValidUrl(url)) Device.OpenUri(new System.Uri(url)); } |