表示引用之前对应编号为n的捕获组。
捕获组的编号是从“(”第一次出现的位置开始计算的,java会对捕获组进行自动的编号,编号从1开始。
// 匹配至少含有两个"abc"的字符串
// \\n 表示引用之前对应编号为n的捕获组---捕获组的编号是从1开始的
System.out.println(str.matches(".*(abc).*\\1.*"));
1.匹配邮箱(典型练习)
package cn.tedu.regex;
public class PatternExer4 {
public static void main(String[] args) {
String email = "langang@tarena.com.cn";
System.out.println(checkEmail(email));
}
private static boolean checkEmail(String email) {
return email == null ? false : email.matches("\\w+@[0-9A-Za-z]+(\\.com)|\\w+@[0-9A-Za-z]+(\\.com)?(\\.cn)");
}
}
是否匹配参数。
将一类东西替换。后一个参数想引用前一个参数的捕获组,改用符。这个符号,仅限于此方法使用。
// String str = "adag35bknl2nkld08aadb";
// 将数字替换为*
// System.out.println(str.replaceAll("\\d", "*"));
// 消除所有的数字
// System.out.println(str.replaceAll("\\d", ""));
String str = "Amy Tom Sam David Grace";
// Tom和David调换顺序
System.out.println(str.replaceAll("(.*)(Tom)(.*)(David)(.*)", "$1$4$3$2$5"));
1.统计每个字符出现的个数。
从控制台输入一个字符串,统计每个字符出现的次数。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.next();
s.close();
while (str.length() > 0) {
// 记录字符串的原始长度
int len = str.length();
// 获取这个字符串的首字母
char c = str.charAt(0);
// 判断数量词
if (c == '+' || c == '?' || c == '*') {
str = str.replaceAll("\\"+c + "", "");
}else
// 去除掉这个字符串中的这个字母
str = str.replaceAll(c + "", "");
System.out.println(c + ":" + (len - str.length()));
}
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-53988-9.html
旅沪比这条船舰龄大点
虽然美国一开始扶持了傀儡政权