当前位置:编程学习 > JAVA >>

Java正则表达式2

要得到下面字符串中的79正则表达式该如何写呢?

4.6分|79条评价 --------------------编程问答-------------------- 试试这个:
  str = str.replaceAll("[^\\|]*\\|(\\d*).*", "$1"); --------------------编程问答-------------------- Pattern p2 =Pattern.compile("|(.*?)条评价");
这样写可以吗? --------------------编程问答-------------------- 如果想截取,应该这样写就够了:
  Pattern p2 =Pattern.compile("|(\\d+)");


不过挺麻烦的,还得写好多代码来处理。 --------------------编程问答-------------------- 想截取的话也不麻烦,就几行代码的事,可以以|为分割符把字符串存到数组中再截取
String str ="4.6分|79条评价";
boolean result = Pattern.matches(
"[\\w\\W]+\\|[\\w\\W]+",str);
if(result){
String[] strs = str.split("\\|");
String str1 = strs[1].substring(0, 2);
System.out.println(str1);
}
结果:79 --------------------编程问答--------------------

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

public static void main(String[] args){
String str ="4.6分|79条评价";

Pattern pattern = Pattern.compile(".*\\|(\\d+).*");
Matcher matcher = pattern.matcher(str);
if(matcher.matches()){
System.out.println(matcher.group(1));
}
}
}
--------------------编程问答-------------------- Mark一下,好贴学习了 --------------------编程问答--------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main(String[] agrs) {
String s = "4.6分|79条评价";
Pattern p = Pattern.compile("(\\d+)条评价");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(1));
}
}
}


正则部分还是写的清楚些,不要用什么.*之类的,避免意外 --------------------编程问答-------------------- String ss="4.6|79条评价";
Pattern pattern=Pattern.compile("(\\d+[.]?\\d?)\\|(\\d+[.]?\\d?).?");
Matcher matcher=pattern.matcher(ss);
if(matcher.find()){
System.out.println(matcher.group(1)+"---"+matcher.group(2));
}
}
正则的功能很强大的。根据这个例子举一反三,楼主会对正则有一个比较深刻的理解的 --------------------编程问答-------------------- 除
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,