2013-02-15 23 views
5
Dim rc As Boolean = "2" Like "*?<*?" 

Tôi không hiểu tại sao rc bằng Đúng vậy, chắc chắn 2 không giống như *?<*? ở tất cả.VB.NET Giống như nhà điều hành nhầm lẫn với ít hơn đăng nhập mẫu

Các mô hình trên đòi hỏi một chuỗi với

  • Ít nhất ba nhân vật (hai 's? Và một <)
  • nơi biểu tượng < là ở đâu đó trên nội thất.

Theo như tôi có thể làm việc ra < không phải là một nhân vật đặc biệt đó có nghĩa là một cái gì đó khác hơn < để các nhà điều hành Giống như.

Sử dụng Visual Studio 2010.

+0

Tôi không biết tại sao "2" khớp với "<". Tuy nhiên, nó không yêu cầu ba ký tự trước khi từ '*' là một ký tự đại diện cho bất cứ điều gì (vì vậy thậm chí không có ký tự). –

+0

Tôi biết * phù hợp với bất kỳ điều gì, vì vậy "2" chuyển cả * và? ký tự đại diện, nhưng

+1

Thật kỳ lạ nếu bạn xóa ngay cả một trong hai ký tự kết thúc kết quả là sai. – Steve

Trả lời

1

Trong khi tôi không thể trực tiếp giải thích tại sao 2 là như "*?<*?".

Truy vấn của bạn đọc;

  • * - Match 0 hoặc nhiều ký tự
  • ? - Tiếp theo là một ký tự đơn
  • < - Tiếp theo là < nhân vật
  • * - Tiếp theo là 0 hoặc nhiều ký tự
  • ? - Kết thúc bởi một ký tự đơn

Đối với logic của bạn, bạn muốn;

ít nhất ba nhân vật trước khi nó phù hợp với "<" xảy ra ở đâu đó trên phần bên trong của chuỗi

Những kết quả trong một truy vấn của;

Dim rc As Boolean = "2" Like "???*<*" 

Lần đọc nào;

  • ??? - Trận ít nhất 3 ký tự
  • * - Tiếp theo là bất kỳ số lượng ký tự thêm
  • < - Tiếp theo là < nhân vật
  • * - Tiếp theo là bất kỳ số lượng ký tự thêm

Không phải là câu trả lời trực tiếp mà tôi biết, nhưng tôi hy vọng nó sẽ giúp tất cả ...

EDIT:

Để trả lời bình luận của bạn dưới đây.

Bạn muốn;

tìm một chuỗi trong đó có một "<" ở đâu đó có ít nhất một nhân vật ở hai bên

Những kết quả trong một truy vấn của;

Dim rc As Boolean = "2" Like "*?<?*" 

Điều này sẽ trả về kết quả là sai;

Dim rc As Boolean = "<" Like "*?<?*" 

Tuy nhiên;

Dim rc As Boolean = "2<2" Like "*?<?*" 

Sẽ trả về đúng sự thật.

Tôi hy vọng điều này sẽ giúp (nhiều hơn nữa)

+0

Điều tôi cần làm là tìm một chuỗi có dấu "<" ở đâu đó với ít nhất một ký tự ở hai bên. Tôi có thể viết nó một cách dễ dàng, đủ bằng cách sử dụng String.IndexOf và các công cụ, nhưng tôi nghĩ rằng nhà điều hành Like sẽ là một cách dễ dàng. Tôi cũng sẽ cần một trận đấu cho một chuỗi với ít nhất hai ký tự, với ít nhất một ký tự ở hai bên của mỗi

+0

Vui lòng xem chỉnh sửa của tôi! :-D – PGallagher

+0

Whoa, nó hoạt động. WHYYYYY !? Sự khác biệt logic giữa '? *' Và '*? ' –