用于在末尾用_0,_1检查名称的正则表达式?

时间:2014-12-30 11:46:59

标签: javascript regex

我想编写一个正则表达式,捕获所有以_0, _1,结尾的名称,如:

dog, cart_5, rat_0

我尝试了/_\d$/.test('abc_0'),但是对于“狗”而言,它会返回false。我想了解如何确保小组(_digit) 整体重复0次或更多次?

另外,我可以在下划线后面找到数字吗?我想通过java

做最后一件事

2 个答案:

答案 0 :(得分:2)

  

我想了解如何确保整个组(_digit)重复0次或更多次?

对于零个或多个_任何数字。

(?:_\d)*$

OR

对于零个或多个_任何数字。

(?:_\d+)*$

OR

零或更多_加0或1。

(?:_[01])*$

示例:

> /(?:_\d)*$/.test('abc_0')
true
> /(?:_\d)*$/.test('dog')
true

答案 1 :(得分:2)

如果要查找以数字结尾的所有单词,可以使用\w+_\d+。如果您只想将匹配限制为0或1,请尝试\w+_0|1

以下是java中的示例代码

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Solution {

    public static void main(String[] args) {
        //Pattern p = Pattern.compile("\\w+_\\d+"); //uncomment the code for first case
        Pattern p = Pattern.compile("\\w+_0|1");
        Matcher matcher = p.matcher("dog, cart_5a, rat_0b");

        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

输出

rat_0