Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn có thể viết tắt thành Regex.
Nguyên tắc hoạt động của biểu thức Regex là so khớp dựa vào khuôn mẫu, khuôn mẫu được xây dựng từ các quy tắc căn bản của biểu thức Regex.
Pattern được sử dụng là: ^[a-z0-9._-]{3,15}$
import java.util.regex.Pattern;
public class UsernameValidator {
private Pattern pattern;
private static final String USERNAME_PATTERN = "^[a-z0-9._-]{3,15}$";
public UsernameValidator() {
pattern = Pattern.compile(USERNAME_PATTERN);
}
public boolean validate(final String username) {
return pattern.matcher(username).matches();
}
}
public class UsernameValidatorDemo {
public static void main(String[] args) {
UsernameValidator validator = new UsernameValidator();
//true
System.out.println(validator.validate("absherzad"));
System.out.println(validator.validate("ab.sherzad"));
System.out.println(validator.validate("ab-sherzad"));
System.out.println(validator.validate("ab_sherzad"));
System.out.println(validator.validate("oxus20"));
System.out.println(validator.validate("ars"));
//false
System.out.println(validator.validate("Absherzad"));
System.out.println(validator.validate("ab sherzad"));
System.out.println(validator.validate("ab"));
System.out.println(validator.validate("abdulrahmansherzad"));
}
}
Pattern được sử dụng là: ((?=.d)(?=.[a-z])(?=.[A-Z])(?=.[!.#$@_+,?-]).{8,50})
import java.util.regex.Pattern;
public class PasswordValidator {
private Pattern pattern;
private static final String PASSWORD_PATTERN = "((?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!.#$@_+,?-]).{8,50})";
public PasswordValidator() {
pattern = Pattern.compile(PASSWORD_PATTERN);
}
public boolean validate(final String password) {
return pattern.matcher(password).matches();
}
}
public class PasswordValidatorDemo {
public static void main(String[] args) {
PasswordValidator validator = new PasswordValidator();
// true
System.out.println(validator.validate("Oxus20.2014"));
System.out.println(validator.validate("Oxus.20_14"));
System.out.println(validator.validate("OXUS20@Herat"));
System.out.println(validator.validate("Oxus20@2014"));
// false
System.out.println(validator.validate("Oxus202014"));
System.out.println(validator.validate("Oxus20"));
System.out.println(validator.validate("Oxus@20"));
System.out.println(validator.validate("Oxus20@"));
}
}
Qua 2 ví dụ trên, ta thấy Regex là một công cụ rất mạnh trong làm việc với chuỗi. Việc ứng dụng regex vào code giúp chúng ta tiết kiệm được rất nhiều dòng code được viết ra, giúp code trở lên gắn gọn, dễ đọc hơn rất nhiều.
Unpublished comment
Viết câu trả lời