如何在 Java 中解析正则表达式?

我从字符串中的服务动态获取正则表达式值。例如:

String nameRegex = "^[0-9a-zA-Z\s\.]{3,40}$";

我想使用 Java 解析这个正则表达式。所以我必须替换"\\""\\\\"(即\替换为\\),但出现以下错误:

索引 1 附近出现意外内部错误

我如何解析这个正则表达式?


开满天机
浏览 97回答 1
1回答

慕森王

所以答案并不是那么简单,因为这取决于你如何获得正则表达式。如果您在代码中定义它,那么String您只需将每个替换\为\\,那么您的表达式将如下所示String regex = "^[0-9a-zA-Z\\s\\.]{3,40}$";另一方面,如果您从外部源(即扫描仪)拉入,则无需替换\为\\. 例如:Scanner sc = new Scanner(System.in);String regex = sc.nextLine(); 如果您尝试对此字符串执行 a 操作replaceAll(),例如:Scanner sc = new Scanner(System.in);String regex = sc.nextLine(); regex .replaceAll("\\","\\\\");那么这replaceAll()会产生Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1异常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java