zoukankan      html  css  js  c++  java
  • 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开始的引用
  • 相关阅读:
    UVA
    UVALive
    找一
    买书最低价格
    NABCD模型分析
    二维数组--首尾
    结对开发---环
    结对开发---二维数组
    电梯设计需求调研报告
    数组求和(2)
  • 原文地址:https://www.cnblogs.com/eoss/p/5912805.html
Copyright © 2011-2022 走看看