我從字符串中的服務動態(tài)獲取正則表達式值。例如:String nameRegex = "^[0-9a-zA-Z\s\.]{3,40}$";我想使用 Java 解析這個正則表達式。所以我必須替換"\\"為"\\\\"(即\替換為\\),但出現(xiàn)以下錯誤:索引 1 附近出現(xiàn)意外內部錯誤我如何解析這個正則表達式?
1 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
所以答案并不是那么簡單,因為這取決于你如何獲得正則表達式。如果您在代碼中定義它,那么String您只需將每個替換\為\\,那么您的表達式將如下所示
String regex = "^[0-9a-zA-Z\\s\\.]{3,40}$";
另一方面,如果您從外部源(即掃描儀)拉入,則無需替換\為\\. 例如:
Scanner sc = new Scanner(System.in);
String regex = sc.nextLine();
如果您嘗試對此字符串執(zhí)行 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異常。
添加回答
舉報
0/150
提交
取消