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