为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2023-10-13 09:49:43
我从字符串中的服务动态获取正则表达式值。例如:String nameRegex = "^[0-9a-zA-Z\s\.]{3,40}$";我想使用 Java 解析这个正则表达式。所以我必须替换"\\"为"\\\\"(即\替换为\\),但出现以下错误:索引 1 附近出现意外内部错误我如何解析这个正则表达式?
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

所以答案并不是那么简单,因为这取决于你如何获得正则表达式。如果您在代码中定义它,那么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异常。


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信