正则表达式已经不是陌生的话题了,无论是在Java 中还是在JS中都会用到正则表达式,尤其是在搜索引擎中的数据分析用到的最广泛。
先简单的介绍一些表达式:
@H_403_24@
. :匹配除换行符以外的任意字符:
\w:匹配字母或数字或下划线或汉字
\s :匹配任意的空白符\d:匹配数字:
\b:匹配单词的开始或结束^:匹配字符串的开始:
$:匹配字符串的结束
* :重复零次或更多次
+ :重复一次或更多次
? :重复零次或一次
{n} :重复n次
{n,} :重复n次或更多次
查找匹配需要分组用到group: matcher.group(n)
ps : 转义字符 需要注意。
这只是一些简单的字符。可以参考入门链接 http://deerchao.net/tutorials/regex/regex.htm
下面来简单的介绍一下用法:
1、.matches()匹配: 匹配字符串中含有什么
(1)String.matches( regex );
(2)matcher.matches( regex );
2、.find() 查找:查找想要的东西
一般:
Pattern pattern = Pattern.compile( regex ); Matcher matcher = pattern.matcher( string ); if( matcher.find()){ String result = matcher.group(n); } ……
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Tr2 { public static void test() { Pattern pattern; Pattern pattern1; Matcher matcher; String floatStr = "100.22"; String floatStr2 = "100.22222"; System.out.println(floatStr.matches("^\\d+\\.\\d{2}")); System.out.println(floatStr.matches("^\\d+\\.\\d{2}$")); System.out.println(floatStr2.matches("^\\d+\\.\\d{2}$")); pattern = Pattern.compile("^\\d+\\.\\d{2}$"); matcher = pattern.matcher(floatStr); if (matcher.matches()) { System.out.println("yes"); } else { System.out.println("NO"); } String str = "<li><a href=\"www.baidu.com/category/1\">编程</a></li>"; pattern = Pattern.compile("\"(\\w+)\""); matcher = pattern.matcher(str); if (matcher.find()) { String result = matcher.group(1); System.out.println(result); } pattern1 = Pattern.compile("\"(.*?)\""); matcher = pattern1.matcher(str); if (matcher.find()) { String result = matcher.group(1); System.out.println(result); } } public static void main(String[] args) { test(); } }
简单的暂时是这样了,其实正则表达式很有用处,自己可以进一步拓展……