Java replaceall正则表达式问题

Java replaceall正则表达式问题,java,replaceall,Java,Replaceall,我试图给每个辅音加上一个字母,但我的问题是,我不知道如何为小写和大写添加不同的字母 我可以用双正则表达式吗?那样的话,怎么办 import java.util.Scanner; public class Main { public static void main(String[] args) { // skapar en scanner Scanner sc = new Scanner(System.in); System.out.pr

我试图给每个辅音加上一个字母,但我的问题是,我不知道如何为小写和大写添加不同的字母

我可以用双正则表达式吗?那样的话,怎么办

    import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
//      skapar en scanner
        Scanner sc = new Scanner(System.in);
        System.out.print("Skriv en rad text: ");
//      tar användarens input och översätter den till rövarspråket.
        String input = sc.nextLine();   
        System.out.println(input.replaceAll("([bcdfghjklmnpqrstvwxz])", "$1o$1"));
    }
}

我认为如果在正则表达式中使用OR(
|
),它应该会起作用

[bcdfghjklmnpqrstvwxz]|[BCDFGHJKLMNPQRSTVWXZ]

您可以使用
|
符号匹配小写或大写字符

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class HelloWorld
{
  public static void main(String[] args)
  {
    String text    =
      "John writes about this, and John Doe writes about that," +
      " and John Wayne writes about everything."
      ;

    String patternString1 = "([b-z&&[^eiou]]|[B-Z&&[^EIOU]])";

    Pattern pattern = Pattern.compile(patternString1);
    Matcher matcher = pattern.matcher(text);

    String replaceAll = matcher.replaceAll("$10$1");
    System.out.println("replaceAll   = " + replaceAll);
  }
}
输出

replaceAll   = J0Joh0hn0n w0wr0rit0tes0s ab0bout0t t0th0his0s, an0nd0d J0Joh0hn0n D0Doe w0wr0rit0tes0s ab0bout0t t0th0hat0t, an0nd0d J0Joh0hn0n W0Way0yn0ne w0wr0rit0tes0s ab0bout0t ev0ver0ry0yt0th0hin0ng0g.

我认为你的问题是一个大型项目的摘录

import java.util.Scanner;

public class ScratchJava {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Skriv en rad text: ");
        String input = sc.nextLine();
        String intermediate = input.replaceAll("([bcdfghjklmnpqrstvwxz])", "$1o$1");
        System.out.println(intermediate.replaceAll("([BCDFGHJKLMNPQRSTVWXZ])", "$1X$1"));
    }
}
您可以在两个过程中替换,一个用于小写,另一个用于大写


我在标准库中找不到根据匹配条件在同一过程中替换的方法,尽管这对于大输入来说要快得多。如果你遇到了性能问题,考虑自己写一个。

你能给我们看一个输入输出例子吗?嗨。我需要的是小写字母有一个字母,例如replaceall=joj,大写字母有一个字母,例如replaceall=joj