代码之家  ›  专栏  ›  技术社区  ›  Mike Q

测试Java正则表达式AppEdRePayStices()

  •  1
  • Mike Q  · 技术社区  · 14 年前

    我开发了一个用户界面,允许用户定义一个regex模式,然后定义一个由 appendReplacement() .

    例如

    • 模式- 7(*)
    • 替换模式-$1

    因此,71234将产生1234。

    是否仍然可以在用户不必输入匹配字符串的情况下验证输入模式和替换模式是否兼容?例如,如果替换模式是 $1$2 然后这将在运行时引发异常。我能提前检查一下这个吗?

    编辑:

    最后的解决方案是按照aioobe的建议执行,通过创建一个虚拟匹配器(不确定为什么这个方法不在模式tbh上)来获取组计数,然后手动分析替换字符串以找到存在哪些$group引用。有点烦躁但有效。

    1 回复  |  直到 14 年前
        1
  •  2
  •   aioobe    14 年前

    yourPattern.matcher("").groupCount();
    

    groupCount()