我正在尝试找到匹配的特殊字符。 如何为此定义我的模式? (),[],{}
到目前为止这是我的代码.. 我打算在matchSpecChars()中调用regexChecker() 然后在main。中匹配SpecChars()。
regexChecker(“(______)”,输入); < --- pattern?
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VictorSolutions {
public static void main(String[] args) {
}
public static void matchSpecChars() {
Scanner input = new Scanner(System.in);
System.out.println("Enter characters: ");
input.next();
}
public static void regexChecker(String theRegex, String str2Check) {
Pattern checkRegex = Pattern.compile(theRegex);
Matcher regexMatcher = checkRegex.matcher(str2Check);
while (regexMatcher.find()) {
System.out.println(regexMatcher.group().trim());
}
}
}
答案 0 :(得分:1)
如何为此定义模式? (),[],{}
String theRegex = "^(?:\\(\\)|\\[\\]|\\{})$";
答案 1 :(得分:0)
要匹配在regex中具有特殊含义的文字字符,您需要将其转义。例如,要匹配文字.
,您的正则表达式将为\.
;所以\.\*
恰好匹配两个字符:一个点后面跟一个星号。
您的模式可能类似于:regexChecker\(\"\(______\)\", input\); \<\-\-\- pattern \?
答案 2 :(得分:0)
在java中你可以使用正则表达式:
[]()\[{}]
正则表达式为转义字符串:
"[]()\\[{}]"
还有用于打开和关闭标点符号的Unicode类别。
[\p{Ps}\p{Pe}]
正则表达式为转义字符串:
"[\\p{Ps}\\p{Pe}]"