Java--正则表达式-简单的在字符串中找数字

import org.junit.Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

    @Test
    public void test(){
        String line = "This order was placed for QT3000! OK?";
        String pattern = "\\d+";

        // Create a Pattern object
        Pattern r = Pattern.compile(pattern);

        // Now create matcher object.
        Matcher m = r.matcher(line);
        if (m.find( )) {
            System.out.println("Found value: " + m.group() );
        } else {
            System.out.println("NO MATCH");
        }
    }
}

 

其中\d+是匹配1个或者更多个数字。

最后输出结果为:3000

 

附上一张正则表达式元字符语法:

子表达式匹配对应
^ 匹配一行的开头
$ 匹配一行的结尾
. 匹配除了换行符的任何单个字符,也可以利用 m 选项允许它匹配换行符
[...] 匹配括号内的任意单个字符。
[^...] 匹配不在括号内的任意单个字符。
\A 整个字符串的开始
\z 整个字符串的结束
\Z 整个字符串的结束,除了最后一行的结束符
re* 匹配0或者更多的前表达事件
re+ 匹配1个或更多的之前的事件
re? 匹配0或者1件前表达事件
re{ n} 匹配特定的n个前表达事件
re{ n,} 匹配n或者更多的前表达事件
re{ n, m} 匹配至少n最多m件前表达事件
a| b 匹配a或者b
(re) 正则表达式组匹配文本记忆
(?: re) 没有匹配文本记忆的正则表达式组
(?> re) 匹配无回溯的独立的模式
\w 匹配单词字符
\W 匹配非单词字符
\s 匹配空格。等价于 [\t\n\r\f]
\S 匹配非空格
\d 匹配数字. 等价于 [0-9]
\D 匹配非数字
\A 匹配字符串的开始
\Z 匹配字符串的末尾,如果存在新的一行,则匹配新的一行之前
\z 匹配字符串的末尾
\G 匹配上一次匹配结束的地方
\n 返回参考捕获组号“N”
\b 不在括号里时匹配单词边界。在括号里时匹配退格键
\B 匹配非词边界
\n, \t, etc. 匹配换行符,回车符,制表符,等
\Q 引用字符的初始,结束于\E
\E 结束由\Q开始的引用
posted @ 2016-09-27 14:58  11楼的日记  阅读(9605)  评论(1编辑  收藏  举报