JAVA的正则表达式
JAVA的正则表达式
- 判断一个字符是否匹配一个模式
建立一个模式:
String patternRule=”var dataArray=\\[(.*)\\]\\; FRunTimeQuote.GetData\\(dataArray\\)”;
//定义匹配条件
Pattern p=Pattern. .compile(patternRule);
获取匹配类:
String content=”var dataArray=['XAGUSD', '白银美元', 32.8900, 0.68, '2.11%', '2012-09-06','32.2100', '32.9800', '32.2000', 32.2100, 2.4223602484472, 32.94, 32.89]; FRunTimeQuote.GetData(dataArray)”; //需要进行匹配判断的内容
Matcher m=p.matcher(content); //进行匹配
输出是否匹配
System.out.println(m.matches());
输出提取内容
System.out.println(m.group(1));
注意,先匹配才能提取,如
m.matches();
m.group(1);
直接调用group是不行的
注意点 : 在JAVA中正则表达式语法和别的是一样的, 但是注意很多字符都需要转换.比如\\[ ,\\,( \\.等,在特殊字符前面加上‘\\’进行转换匹配.,主要原因是在正则表达式中特殊符合是加’\’表示的,但JAVA中’\’本身就是转义字符,所以加’\\’表示’\’.
比如:
标准正则表达式中匹配’(’ 是 ‘\(’
在JAVA中表示匹配’(’ 是用’\\(’
;
关键字:如果不匹配直接提取会报错:
java.lang.IllegalStateException: No match found
at java.util.regex.Matcher.group(Matcher.java:468)
at com.ben.collection.HXSilverPrice.getPriceInfor(HXSilverPrice.java:34)
at com.ben.collection.HXSilverPrice.main(HXSilverPrice.java:39)