如何获取文本的数量?

时间:2010-05-13 17:09:51

标签: javascript regex

我的文字如“这是13221项中的145项”。我需要一次获取所有文本的数字(“145和13221”)。我想用正则表达式来做这件事。什么是正则表达式? “\ d +”不能正常工作。

3 个答案:

答案 0 :(得分:3)

\d+运行正常。根据语言的不同,您可能必须将斜杠转义为"\\d+",例如在Java。

    String text = "It's the 145 of 13221 items";
    Matcher m = Pattern.compile("\\d+").matcher(text);
    while (m.find()) {
        System.out.println(m.group());
    }
    // prints "145", "13221"

您需要弄清楚如何在您的语言的字符串中查找正则表达式匹配,但模式\d+将匹配连续数字的非零序列。


在Javascript中,您可以执行以下操作:

function findDigitSequences(s) {
    var re = new RegExp("\\d+", "g");
    return s.match(re);
}

答案 1 :(得分:2)

您需要使用^[^\d]*(\d+)[^\d]*(\d+)[^\d]*$之类的内容。取决于你正在使用什么样的正则表达式。

此正则表达式匹配:

  1. 开头的零个或多个非数字字符(“它就是”)
  2. 捕获组#1(“145”)
  3. 中的一个或多个数字字符
  4. 零个或多个非数字字符(“of”)
  5. 捕获组#2(“13221”)
  6. 中的一个或多个数字字符
  7. 末尾有零个或多个非数字字符(“项目”)

答案 2 :(得分:0)

^[\D\w]+([\d]+)[\D\w]+([\d]+).+$

捕获群组:

  1. 145
  2. 13221
  3. 抱歉,当我写下

    时,我的大脑已经关闭了