Biểu thức chính quy sau đây khớp với tất cả các ký tự đặc biệt, tức là tất cả các ký tự ngoại trừ khoảng trắng và chữ số trong bảng chữ cái tiếng Anh.
"[^a-zA-Z0-9\\s+]"
Để di chuyển tất cả các ký tự đặc biệt đến cuối dòng đã cho, hãy so khớp tất cả các ký tự đặc biệt bằng cách sử dụng regex này, nối chúng với một chuỗi trống và cuối cùng nối các ký tự còn lại với một chuỗi khác, nối hai chuỗi này.
Ví dụ 1
public class RemovingSpecialCharacters { public static void main(String args[]) { String input = "sample # text * with & special@ characters"; String regex = "[^a-zA-Z0-9\\s+]"; String specialChars = ""; String inputData = ""; for(int i=0; i< input.length(); i++) { char ch = input.charAt(i); if(String.valueOf(ch).matches(regex)) { specialChars = specialChars + ch; } else { inputData = inputData + ch; } } System.out.println("Result: "+inputData+specialChars); } }
Đầu ra
Result: sample text with special characters#*&@
Ví dụ 2
Sau đây là chương trình Java di chuyển các ký tự đặc biệt của một chuỗi đến cuối bằng các phương thức của gói Regex.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String args[]) { String input = "sample # text * with & special@ characters"; String regex = "[^a-zA-Z0-9\\s+]"; String specialChars = ""; System.out.println("Input string: \n"+input); //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); //Creating an empty string buffer StringBuffer sb = new StringBuffer(); while (matcher.find()) { specialChars = specialChars+matcher.group(); matcher.appendReplacement(sb, ""); } matcher.appendTail(sb); System.out.println("Result: \n"+ sb.toString()+specialChars ); } }
Đầu ra
Input string: sample # text * with & special@ characters Result: sample text with special characters#*&@