正则表达式匹配特殊字符

时间:2015-01-15 02:17:03

标签: regex matcher

我正在尝试找到匹配的特殊字符。 如何为此定义我的模式? (),[],{}

到目前为止这是我的代码.. 我打算在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());
        }
    }
}

3 个答案:

答案 0 :(得分:1)

  

如何为此定义模式? (),[],{}

String theRegex = "^(?:\\(\\)|\\[\\]|\\{})$";

答案 1 :(得分:0)

要匹配在regex中具有特殊含义的文字字符,您需要将其转义。例如,要匹配文字.,您的正则表达式将为\.;所以\.\*恰好匹配两个字符:一个点后面跟一个星号。

您的模式可能类似于:regexChecker\(\"\(______\)\", input\); \<\-\-\- pattern \?

答案 2 :(得分:0)

在java中你可以使用正则表达式:

[]()\[{}]

正则表达式为转义字符串:

"[]()\\[{}]"

还有用于打开和关闭标点符号的Unicode类别。

[\p{Ps}\p{Pe}]

正则表达式为转义字符串:

"[\\p{Ps}\\p{Pe}]"