1

我已经使用正则表达式生成器和检查器搜索了几个小时,但我似乎无法让它工作......

我有这个字符串:hdr("");cr(92);cl(3,"",4,"420720250","random message here");etr();

到目前为止我的代码是:

private void strchecker() {

    Pattern pattern = Pattern.compile("(\\d{9})");
    Matcher matcher = pattern.matcher(strLine);
    if (matcher.find()) {
        System.out.println(matcher.group(0)); //prints /{item}/
    } else {
        //System.out.println("Match not found");
    }

}

此代码有效,它在字符串中找到 9 位数字。我试图做的是找到正则表达式代码来搜索“cl(3”或“cl(2”),如果存在则将 9 位数字发送到变量。我只是不知道如何找到那个 cl( 3 或 2..

有什么建议吗?

谢谢马特

4

2 回答 2

0

由于您注意到您使用的是javascript,我认为您可以这样做,因为您不能使用lookbehind;你只需要抓住捕获组而不是使用完整的匹配。

cl\\([23].*?(\\d{9})
于 2013-02-18T03:39:29.293 回答
0
/cl\([23].*(\d{9})/

最后的括号将捕获第 1 组中的 9 位数字。

于 2013-02-18T03:42:29.203 回答