求java正则表达吃及用法

假如有如下字符串String s = "100福克斯200-300了圣诞节";
怎么用正则表达式方式,把字符串s中的100,200,300放到数组当中.

很简单 你是想匹配数字吗?写这个“\d{3}”意思匹配所有的三位数。如果还需要其它操作建议下载RegexBuddy.可以很直观查看匹配的正则表达式

Java正则表达式主要有两个类:Pattern和Matcher。
Pattern表示正则表达式的编译形式。
Matcher表示执行匹配操作的引擎。
下面通过几个例子展示两个类的使用方法。
matches方法:
[java] view plain copy print?
package com.zzj.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class MatchesTest {

public static void main(String[] args) {

Pattern pattern = Pattern.compile("\w+");

    Matcher matcher = pattern.matcher("abc123");  
    System.out.println(matcher.matches()); // 尝试将整个字符序列与该模式匹配  

    matcher = pattern.matcher("abc&&123");  
    System.out.println(matcher.matches());  
}  

}

测试结果:
[plain] view plain copy print?
true

false

find方法:
[java] view plain copy print?
package com.zzj.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class FindTest {

public static void main(String[] args) {

Pattern pattern = Pattern.compile("\w+");

    Matcher matcher = pattern.matcher("abc&&123");  
    System.out.println(matcher.find()); // 查找匹配该模式的下一个子序列  
    System.out.println(matcher.find());  
    System.out.println(matcher.find());  
    System.out.println(matcher.find());  
}  

}

测试结果:
[plain] view plain copy print?
true

true

false

false

group方法1:
[java] view plain copy print?
package com.zzj.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

  • 打印匹配到的子序列
  • @author Administrator
  • */

    public class GroupTest1 {

    public static void main(String[] args) {

    Pattern pattern = Pattern.compile("\w+");

    Matcher matcher = pattern.matcher("abc&&123");  
    while(matcher.find()){  
        System.out.println(matcher.group());  
    }  
    

    }

    }

    测试结果:
    [plain] view plain copy print?
    abc

    123

    group方法2:
    [java] view plain copy print?
    package com.zzj.regex;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

  • 分组
  • @author Administrator
  • */

    public class GroupTest2 {

    public static void main(String[] args) {

    Pattern pattern = Pattern.compile("([a-z]+)([0-9]+)");

    Matcher matcher = pattern.matcher("abc123&&def456");  
    while(matcher.find()){  
        System.out.println(matcher.group(0)); // 等价于matcher.group()  
        System.out.println(matcher.group(1));  
        System.out.println(matcher.group(2));  
    }  
    

    }

    }

    测试结果:
    [plain] view plain copy print?
    abc123

    abc

    123

    def456

    def

    456

 public static String filterUnNumber(String str) {  
        String regEx = "[^0-9]";  //匹配数字
        Pattern p = Pattern.compile(regEx);  
        Matcher m = p.matcher(str);  
    //替换与模式匹配的所有字符(即非数字的字符将被","替换)  
        return m.replaceAll(",").trim();  
    }  

处理后用“,”分割结果字符串,去除空串,就是你想要的

(⊙o⊙)…这样的话!
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("\d+");
String str = "2134正则表达式sdhgsfgfhbzf1235A2515$84 ";
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}

有点问题 复制的时候少了一个“\”这里Pattern pattern = Pattern.compile("\d+");
改为Pattern pattern = Pattern.compile("\d+");

我擦这个怎么会自动删掉我的“\”。你自己加吧,那里是双杠