java - 无法在java中使用此正则表达式提取字符串

标签 java regex

我有一个第一个字符是“^”的字符串。我想提取没有这个字符的字符串。例如:“^coal”应该变成“coal”。以下是我写的代码,但我不知道为什么它不起作用。

public void RegEx(String s1){
        System.out.println(s1.substring(0,1));  //to check if i am ok.
        if((s1.substring(0,1)).equals("^")){
            Pattern p = Pattern.compile("^");
            String[] extracted = p.split(s1);
            for(String s: extracted){
                System.out.println(s);
            }
        }
    }

s1 =“^煤炭”。输出=“^煤”。

最佳答案

^ 字符在正则表达式中具有特殊含义,因此您需要对其进行转义:"\\^"

但是正则表达式并不是执行此操作的最有效方法。只需使用子字符串:

if (s1.startsWith("^")) {
    s1 = s1.substring(1);
}
System.out.println(s1);

注意:如上所示,您还可以使用 startsWith 轻松检查字符串是否以其他字符串开头。

关于java - 无法在java中使用此正则表达式提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939676/

相关文章:

java - ExecutorService没有性能增益递归行列式Java

java - Chrome 自定义标签 Oauth2 流程

java - 如何使用 spring webClient 等待所有 http 请求完成?

javascript - 带或不带/g 的正则表达式 (CoffeeScript/JavaScript)

javascript - 正则表达式更改引用样式

java - 将 xpath 表达式结果转换为 json

Java ByteBuffer 清除数据

regex - BASH 中的正则表达式?

python - 在 python 中查找子字符串

java - 如何使用 Java 的 String.replaceAll 方法替换加号