Câu hỏi dễ dàng lần này.RegEx để biết nếu một chuỗi không chứa một ký tự cụ thể
Tôi đang cố kiểm tra xem chuỗi có chứa ký tự không sử dụng cụm từ thông dụng hay không. Tôi nghĩ rằng biểu thức có dạng "[^ x]" trong đó x là ký tự mà bạn không muốn xuất hiện, nhưng điều đó dường như không hoạt động.
Ví dụ,
Regex.IsMatch("103","[^0]")
và
Regex.IsMatch("103&","[^&]")
cả trở thành sự thật (Tôi mong chờ false).
Tôi bắt đầu sử dụng "[^&]"
và nghĩ rằng có thể & cần phải được thoát là \ &, nhưng dường như không có sự khác biệt.
Ý tưởng? Tôi cho rằng đó là một cái gì đó nhỏ.
Ngoài ra, tôi đang sử dụng .NET, vì vậy hãy ghi nhớ điều đó.
Edit1:
tôi thấy this, nhưng nó dường như không trả lời những vấn đề tôi gặp phải.
Edit2:
tôi muốn để đáp ứng Kevin và gợi ý Joel 's. Những đề xuất này thực sự sẽ nhanh hơn, nhưng chúng không hoàn thành tính linh hoạt mà tôi cần trong trường hợp này, vì vậy nếu bạn tìm thấy câu hỏi này thông qua tìm kiếm, hãy xem xem câu trả lời của họ có phù hợp với nhu cầu của bạn hay không. Trong trường hợp của tôi, biểu thức chính quy sẽ được chuyển vào một phương thức xác thực DataTable lặp qua mỗi hàng và xác minh rằng nội dung của hàng đó trong một cột cụ thể khớp với RegEx đang được chuyển vào. Vì tôi sẽ sử dụng lại phương thức này trong vài DataTables khác đang được xác nhận, tôi muốn:
- sử dụng Regex để cho phép phạm vi rộng nhất của kiểm chứng thực, và
- Luôn tìm kiếm một trận đấu tích cực (tức là thay vì sử dụng Regex.IsMatch (tế bào! , regexvariable), tôi muốn dựa vào luôn luôn có thể sử dụng Regex.IsMatch (ô, regexvariable) vì phần lớn DataTables gọi phương thức này sẽ sử dụng kết quả trùng khớp thay vì tiêu cực.
Hy vọng điều đó sẽ hữu ích.
Nếu bạn chỉ kiểm tra sự hiện diện của một ký tự đơn, bạn có thể nhận được tốt hơn nhiều mà không cần regexes. Kevin là đúng: sử dụng .IndexOf() hoặc một cái gì đó đơn giản hơn. Nó sẽ dễ đọc hơn, rõ ràng hơn và nhanh hơn. – ruquay