纠正下,java中用到的是matchs,不是match,意思为比较两个值是否相等。举例:
String str = "1111111"
String str1 = "1111111"
System.out.println(str.matches(str1))//两个输出的值相等,所以是true
String format = "yyyy-MM-dd hh:mm:ss"
String time = "2010-07-13 03:30:50"
System.out.println(time.matches(format))//比较的是值不是类型,所有是false
输出结果:
java.lang包中的String类,java.util.regex包中的Pattern,Matcher类中都有matches()方法。都与正则表达式有关。下面我分别举例:(字符串:"abc",正则表达式: "[a-z]{3}")
String类的方法:
boolean b = "abc".matches("[a-z]{3}"
System.out.println(b)
Pattern类中的方法:
boolean b = Pattern.matches("[a-z]{3}","abc")
System.out.println(b)
Matcher类中的方法:
Pattern p = Pattern.compile("[a-z]{3}")
Matcher m = p.matcher("acc")
boolean b =m.matches()
System.out.println(b)
Java 的正则表达式用法和 JavaScript 的类似。
但是正则表达式的写法略有不同。在 Java 中正则表达式源是当中普通字符串来对待的,不需要像 JavaScript 那样用“/.../”包裹,另外,特别要注意正则表达式转义字符是双斜杠(因为在 Java 中,斜杠已是字符串的转义字符,双斜杠才代表斜杠)。
至于使用的语法,常规情况下,需要用到 Pattern 类,下面是一个例子:
import java.util.regex.Pattern // 导入 regex 包import java.util.regex.Matcher
// public class ... {
Pattern p = Pattern.compile("Hello \\w") // 编译正则表达式
Matcher m = p.matcher("Hello World") // 开始匹配字符串
while (m.find()) { // 只要匹配则循环
String result = m.group() // 返回匹配的子串
}
// }
但是有时候不用这么麻烦,String 类中有隐含的正则表达式匹配函数 matches() 和 split(),其中 split() 和 JavaScript 中的 match() 比较相似。下面是例子:
String s = "Hello A Hello B Hello C"boolean bResult = s.matches("Hello [A-C]") // matches() 仅返回逻辑判断结果
String[] strResults = s.split("Hello [A-C]") // split() 可返回结果子串,放在数组当中
详细用法请参考 Java 语言手册。
http:// docs.oracle.com/javase/6/docs/api/java/lang/String.html
http:// docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html