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 整个字符串的结束
 整个字符串的结束,除了最后一行的结束符
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 匹配空格。等价于 [ f]
S 匹配非空格
d 匹配数字. 等价于 [0-9]
D 匹配非数字
A 匹配字符串的开始
 匹配字符串的末尾,如果存在新的一行,则匹配新的一行之前
z 匹配字符串的末尾
G 匹配上一次匹配结束的地方
返回参考捕获组号“N”
 不在括号里时匹配单词边界。在括号里时匹配退格键
B 匹配非词边界
, , etc. 匹配换行符,回车符,制表符,等
Q 引用字符的初始,结束于E
E 结束由Q开始的引用
原文地址:https://www.cnblogs.com/eoss/p/5912805.html