我有一个网址,其中我有NotificationId=2418
,我需要提取这个数字,显然任何事情都可以在之前和之后。拉出NotificationId
我可以做但我怎么能拉出这个号码?我正在使用Java。
答案 0 :(得分:2)
你可以使用这种模式:
NotificationId=([0-9]+)
然后提取第一个捕获组的内容。
其他方法:使用lookbehind:
(?<=NotificationId=)[0-9]+
lookbehind (?<=...)
是零宽度断言,意味着后跟
答案 1 :(得分:1)
详细说明@ CasimiretHippolyte的答案和Java-fy它,这里有一些你可以使用的代码:
import org.junit.Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
public class SandboxTest {
@Test
public void testGroups() {
assertEquals("2418", method("NotificationId=2418"));
}
private String method(String s) {
Pattern compile = Pattern.compile("NotificationId=(\\d+)");
Matcher matcher = compile.matcher(s);
if (matcher.matches()) {
return matcher.group(1);
} else {
throw new RuntimeException("No match found");
}
}
}