import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=id=)\\d+";
final String string = "reference=\"edd63cd8-cdf5-11ed-afa1-0242ac120002\",args=\"one two three\",id=123456789,someField=\"data\",someOtherId=567890\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
2条答案
按热度按时间rjee0c151#
您可以匹配
id=
后跟非逗号字符序列。zte4gxcn2#
您需要对数值匹配使用正向后查找。
正后视:
(?<=...)
确保给定的模式将匹配,在表达式中的当前位置结束。模式必须具有固定的宽度。不使用任何字符。在这种情况下,您可以使用
(?<=id=)\d+
。在这里测试:https://regex101.com/r/gifIkf/1
以及从https://regex101.com/r/gifIkf/1生成的代码