我需要从字符串中提取data-user_id数字

输入字符串示例

 data-user_id="987654" lorem epsem  lorem epsem  lorem epsem  lorem
 data-user_id="123456-6" lorem epsem epsem  lorem epsem
 <img src="abcd.com"/> lorem epsem  data-user_id="123456"


预期产量

987654,123456-6,123456

我拥有的代码(无效)

private static String getIdFromLine(String inputLine) {
    Pattern p = Pattern.compile("(data-user_id=\"[0-9a-z]*\")");
    Matcher m = p.matcher(inputLine);
    if (m.find()) {
        String src = m.group(2);
    }

    return null;
}

最佳答案

您应该有以下正则表达式:

data-user_id=\"([0-9a-z-]+)\"


group(1)将包含所需的输出。

您的代码遭受更多问题;您没有循环结果,而不是if您应该具有while循环:

while (m.find()) {
    //build the result here
{

09-03 20:49