\\
:其余语言中,表示在正则表达式中插入普通的反斜线(字面上的),不要赋予它任何的意义;\\
:我要插入一个正则表达式的反斜线(构成正则式),其后的字符具备特殊的意义; \\d
:表示一位数字;\\+
⇒ 加号,\\.
⇒ 点;\\W+
(一个或多个字母)(\s*)
:匹配连续空格 0-9
自己,Stringjava
str.matches(pattern):布尔判断,返回 true、false;正则表达式
\\w*\\d\\w*
):password.matches("\\w*\\d\\w*")
StringBuffer函数
java.lang.String ⇒ java(去掉字符和点)ui
Pattern p = Pattern.compile("\\w+\\.");
p.match(str).replaceAll("");
[^\w]
,\w: [a-zA-Z0-9]
);建立模式,进行匹配的步骤以下:spa
把你想要检索的字符串传入 Pattern 对象的 matcher() 方法,matcher() 方法会返回一个 Matcher 对象那个,其内有十分丰富的函数实现:日志
// 咱们实现对待检索的字符串 abcabcabcdefabc 的 (abc){2,} 模式的匹配
Pattern p = Pattern.compile("abcabcabcdefabc");
Matcher m = Matcher.match("(abc){2,}");
// 迭代器,遍历和迭代进行
while (m.find()) {
System.out.println("Match \"" + m.group() + "\" at position "
+ m.start() + "-" + (m.end()-1));
}
以下形式的日志文件:code
String logData = "" +
"58.27.82.161@02/10/2005\n" +
"204.45.234.40@02/11/2005\n";
逐行扫描,分别将其中的时间和 ip 提取出来。orm
String pattern = "(\\d+[.]\\d+[.]\\d+[.]\\d+@)" +
"(\\d+{2}/\\d{2}/\\d{4})";
Scanner scanner = new Scanner(logData); // 建立对日志文件扫描的扫描器对象
while (scanner.hasNext(pattern)) {
scanner.next(pattern);
MatchResult m = scanner.match();
String original = m.group(0);
String ip = m.group(1);
String date = m.group(2);
System.out.format("%s: %s from %s\n", original, date, ip);
}