如何正则表达式匹配排除某些字符?

时间:2019-08-25 01:17:03

标签: java regex

我为此尝试过使用Google,但尚未找到解决方案。

假设我从字符串"aaabbccd"开始。然后,我通过添加一些特殊字符来修改它:

  • "aa[ab]bccd"
  • "aa[a[b]bc]cd"
  • "[aa[a[b]bc]cd]"

在修改字符串时,我想对其进行正则表达式匹配,但不使用字符[]。例: 对于输入字符串

String s = "aa[ab]bccd"
s.matches(<my_regex_here>) // trying to match "bbc" should return true
s = "aa[a[b]bc]cd";
s.matches(<my_regex_here>) // trying to match for "abb" should return true

我尝试使用负前瞻,但如果我的理解正确,那么只有当我知道要排除的字符的确切位置时,它才起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

可以这样

s.replaceAll("\\[", "")
                .replaceAll("\\]", "")
                .matches(<my_regex_here>)