Trang 1 trên 1

Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Tư 04/06/2008 1:33 pm
gửi bởi MrB
Thủ thuật: Kiểm tra string gần đúng
Tác giả: MrB
Mô tả: Dùng regex để kiểm tra string gần đúng



Mã: Chọn hết

  1. //using System.Text.RegularExpressions;
  2.  
  3. public bool CompareStringNotExact(string s1, string s2, int percent)
  4. {
  5.     Regex regex = new Regex(string.Format("[{0}]+", s1),
  6.         RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
  7.     MatchCollection mc = regex.Matches(s2);
  8.     int length = 0;
  9.  
  10.     foreach (Match m in mc)
  11.     {
  12.         length += m.Length;
  13.     }
  14.  
  15.     if (length >= percent * s1.Length / 100)
  16.     {
  17.         return true;
  18.     }
  19.  
  20.     return false;
  21. }


s1 và s2 là string cần so sánh, percent là phẩn trăm sai số

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Tư 04/06/2008 9:04 pm
gửi bởi nqtuvn
cái thuật toán này với độ chính xác là 100% thì có 3 trừong hợp như sau
str1=Nguyễn Văn A
str2=Nguyễn
=>True

Str1=Nguyễn Văn A
Str2=Văn
=> False

str1=Nguyễn Văn A
str2=A
=>True

Tạo sao lại vây?bác có thể giải thích chỗ này cho em đc ko

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Tư 04/06/2008 9:08 pm
gửi bởi tienlbhoc
Ý nghĩa cái regex kia thế nào vậy , không hiểu

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Tư 04/06/2008 9:28 pm
gửi bởi neverland87
Đã dùng Regex thì chắc chắn là phải chính xác 100% chứ, có phải thuật toán tìm kiếm do coder nghĩ ra đâu mà mong chỉ là gần đúng. Có ai lại thích sự gần đúng hơn sự chính xác tuyệt đối ko? :-/

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Tư 04/06/2008 10:00 pm
gửi bởi tienlbhoc
Định code ngắn hơn em chứ gì nữa :D , bác neverland vào đây thì biết
viewtopic.php?f=12&t=533

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Năm 05/06/2008 1:12 pm
gửi bởi MrB
Mình đã sửa lại và cho kết quả chính xác hơn.

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Năm 05/06/2008 1:34 pm
gửi bởi tienlbhoc
Đây là list từ của tớ, mỗi dòng 1 từ, chạy vòng lặp 105842 lần để đọc và so sánh là được, làm cái soft lên đây để anh em dễ test nhé , post vài kết quả lên luôn đi. Còn muốn test cái của tớ thì xài từ điển spdict phần tìm kiếm nâng cao (xem chữ ký)

Re: Dùng regex để kiểm tra string gần đúng

Đã gửi: T.Năm 03/06/2010 3:47 pm
gửi bởi minhduc4477
neverland87 đã viết:Đã dùng Regex thì chắc chắn là phải chính xác 100% chứ, có phải thuật toán tìm kiếm do coder nghĩ ra đâu mà mong chỉ là gần đúng. Có ai lại thích sự gần đúng hơn sự chính xác tuyệt đối ko? :-/


Tùy trường hợp bạn ạ!!! Nếu chính sát thì hiển thị cái chính sát. Nếu không có thì hiện cái gần đúng. (đúng nhất có thể)

Ví dụ như.

minhduc4477 đã viết:Với Fire Fox 3.6, thì bạn nhập:
caulacbov
caulabovb
caulcabov
culacbov
->enter->http://caulacbovb.com


Chẵng lẽ thấy không chính sát là chịu sao?