正则表达式
public final class Matcher implements MatchResult
public final class Pattern implements java.io.Serializable
代码:
package yuki.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FirstTest { public static void main(String[] args) { /** * Pattern,正则表达式的编译表示形式 * public final class Pattern implements java.io.Serializable */ String str = "hi! i am a tony; glad to see you!"; String regex = "//p{Punct}"; Pattern pattern = Pattern.compile(regex); String[] strArr = pattern.split(str); for(int i = 0; i < strArr.length; ++i) System.out.println("strArr[" + i + "] = " + strArr[i]); /** * Matcher,通过解释Pattern对character sequence执行匹配操作 * public final class Matcher implements MatchResult */ Matcher matcher = pattern.matcher(str); System.out.println(matcher.matches() ? "匹配" : "不匹配"); System.out.println( Pattern.compile("//p{Punct}+").matcher(".,.;").matches() ? "匹配" : "不匹配"); String s2 = "yuki@gmail.com"; Pattern p2 = Pattern.compile("//w+@//w+.[a-zA-Z]+"); Matcher m2 = p2.matcher(s2); System.out.println("m2.matches() = " + m2.matches()); } }
运行结果:
strArr[0] = hi strArr[1] = i am a tony strArr[2] = glad to see you 不匹配 匹配 m2.matches() = true
代码:
package yuki.regular; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SecondTest { public static void main(String[] args) { /** * 匹配替换 */ String date = "2015/2/27"; Pattern p = Pattern.compile("/"); Matcher m = p.matcher(date); String s = m.replaceAll("-"); System.out.println("m.matches() = " + m.matches()); System.out.println("s = " + s); System.out.println("m.replaceFirst(/"-/") = " + m.replaceFirst("-")); //匹配电话号码 String phone = "0755-28792686"; String regex = "//d{3,4}-//d{7,8}"; boolean isPhone = phone.matches(regex); System.out.println("isPhone = " + isPhone); } }
运行结果:
m.matches() = false s = 2015-2-27 m.replaceFirst("-") = 2015-2/27 isPhone = true
代码:
package yuki.regular; public class ThirdTest { public static void main(String[] args) { /** * 至少含有字符串数组中的一个 */ String s = "123,456,789,012,345"; String s2 = "123,456,789,013,345"; String regex = ".*(234|678|012).*"; boolean isMatch = s.matches(regex); boolean isMatch2 = s2.matches(regex); System.out.println("isMatch = " + isMatch); System.out.println("isMatch2 = " + isMatch2); //匹配金额 String price = "499.00"; System.out.println("price.matches(/"//d+.//d+/")" + price.matches("//d+.//d+")); } }
运行结果:
isMatch = true isMatch2 = false price.matches("/d+./d+")true
更多参考:
API:java.util.regex
马剑威_JAVA基础_正则表达式
点击下方的红色按钮 关注我 吧!
孔东阳
二〇一五年二月二十七日
http://www.cnblogs.com/kodoyang/