相关疑难解决方法(0)

Pattern.quote方法有什么用?

我试图理解Pattern.quote使用以下代码:

String pattern = Pattern.quote("1252343% 8 567 hdfg gf^$545");
System.out.println("Pattern is : "+pattern);
Run Code Online (Sandbox Code Playgroud)

产生输出:

Pattern is : \Q1252343% 8 567 hdfg gf^$545\E
Run Code Online (Sandbox Code Playgroud)

什么是\Q\E这里?文档说明说:

返回String指定的文字模式String.

此方法生成一个String可用于创建Pattern与字符串匹配的字符s,就好像它是文字模式一样.

输入序列中的元字符或转义序列将没有特殊含义.

但是Pattern.quote返回类型是String而不是编译Pattern对象.

为什么需要此方法以及一些用法示例?

java regex pattern-matching

53
推荐指数
5
解决办法
5万
查看次数

String.replaceAll()不起作用

我正在编辑一些来自tesseract ocr的电子邮件.

这是我的代码:

 if (email != null) {
        email = email.replaceAll(" ", "");
        email = email.replaceAll("caneer", "career");
        email = email.replaceAll("canaer", "career");
        email = email.replaceAll("canear", "career");
        email = email.replaceAll("caraer", "career");
        email = email.replaceAll("carear", "career");
        email = email.replace("|", "l");
        email = email.replaceAll("}", "j");
        email = email.replaceAll("j3b", "job");
        email = email.replaceAll("gmaii.com", "gmail.com");
        email = email.replaceAll("hotmaii.com", "hotmail.com");
        email = email.replaceAll(".c0m", ".com");
        email = email.replaceAll(".coin", ".com");
        email = email.replaceAll("consuit", "consult");
    }
    return email;
Run Code Online (Sandbox Code Playgroud)

但输出不正确.

输入:

amrut=ac.hrworks@g mai|.com
Run Code Online (Sandbox Code Playgroud)

输出:

lalcl.lhlrlwlolrlklsl@lglmlalil|l.lclolml
Run Code Online (Sandbox Code Playgroud)

但是当我在每次替换后将结果分配给新的String时,它工作正常.为什么在同一个String中连续赋值不起作用?

java string str-replace

18
推荐指数
6
解决办法
5万
查看次数

标签 统计

java ×2

pattern-matching ×1

regex ×1

str-replace ×1

string ×1