gpt4 book ai didi

java - 正则表达式(java)从多个值url中提取一个值

转载 作者:太空宇宙 更新时间:2023-11-04 12:29:50 26 4
gpt4 key购买 nike

如何从下面的字符串中获取 ID=2053,我想从以下 URL 的第 5 号字段中获取值:

f('1132', 'TEXT', '273', '', '2053', 'TEXT', '1081', '0', '0', '', 'TEXT', '',0);

我试图通过这样做来获取这个值:

String REGEXP = "'(.\\d*)'/g";
Pattern pattern = Pattern.compile(REGEXP);
Matcher matcher = pattern.matcher(URL);
if (matcher.find()) {
docID.setId(matcher.group(2));
}

但我得到ID=null。可能是因为匹配器仅匹配第一个字段。如何创建正则表达式来获取第五个位置上的值

最佳答案

拆分方法

如果您split,则不需要正则表达式来获取该值。 , 的字符串然后就可以得到值了。

String str = "f('1132', 'TEXT', '273', '', '2053', 'TEXT', '1081', '0', '0', '', 'TEXT', '',0);";
String[] arr = str.split(",");

System.out.println("Value is: " + arr[4]);
// Prints:
// Value is: '2053'

<强> IDE One Example

正则表达式方法

但是,如果您仍然想使用正则表达式,那么您可以使用如下正则表达式:

^(?:[^,]*,){4} '(\d+)'

<强> Regex demo

// REGEX APPROACH
String str = "f('1132', 'TEXT', '273', '', '2053', 'TEXT', '1081', '0', '0', '', 'TEXT', '',0);";
Matcher m = Pattern.compile("^(?:[^,]*,){4} '(\\d+)'").matcher(str);

if (m.find()) {
System.out.println(m.group(1));
}

关于java - 正则表达式(java)从多个值url中提取一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com