匹配中文
[\u4E00-\u9FA5]
匹配空白行
\n\s*\r
匹配HTML标记
<(\S*?)[^>]*>.*?<^1>|<.*?/>
匹配URL
[a-zA-Z]+://[^\s]*
匹配国内电话(带区号的如0668-7610110)
\d{3}-\d{8}|\d{4}-\d{7}
匹配腾讯的QQ号
[1-9][0-9]{4,}
匹配中国邮政编码
[1-9]\d{5}(?!\d)
匹配身份证
\d{15}|\d{18}
匹配ip地址
\d+.\d+.\d+.\d+
从一个给定的字符串中找到想要的字符串:
public class RegexTest {
public static void main( String args[] ){
// 按指定模式在字符串查找
String line = "My name is Jianguotang。I am a Android programmer.I am 21 years old";
String pattern = "(\\D*)(\\d+)(.*)";
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
} else {
System.out.println("NO MATCH");
}
}
}
运行结果
Found value: My name is Jianguotang。I am a Android programmer.I am 21 years old
Found value: My name is Jianguotang。I am a Android programmer.I am
Found value: 21
Found value: years old
假设您要替换一个字母后跟一个点或逗号的所有空格。
String pattern = "(\\w)(\\s+)([\\.,])";
System.out.println(EXAMPLE_TEST.replaceAll(pattern, ""));
替换标题标签之间的文本
pattern = "(?i)(<title.*?>)(.+?)()";
String updated = EXAMPLE_TEST.replaceAll(pattern, "