gpt4 book ai didi

java - 正则表达式提取字符第一次出现和最后一次出现之间的字符串

转载 作者:行者123 更新时间:2023-11-30 02:00:57 26 4
gpt4 key购买 nike

我当前正在从违规异常错误消息中提取特定字符串。我所做的步骤如下:

输入字符串格式:键的重复条目

当前使用的正则表达式:

Duplicate entry '(.*)' for key '(.*)'

获得第1组:

值的格式==> 某个 id-所需值-某个 id

为了提取所需的值,我目前使用 (-) 的第一个索引和最后一个索引并提取字符串,如下所示:

error.substring(error.indexOf("-") + 1, error.lastIndexOf("-"));

仅通过正则表达式可以完成同样的工作吗?

最佳答案

我们可以使用String#replaceAll通过一行代码来完成此操作:

String input = "some id-desired - d - d- value-some id";
String output = input.replaceAll("^.*?-(.*)-.*", "$1");
System.out.println(output);

输出:

desired - d - d- value

我谨慎使用的模式会消耗所有内容,直到第一次破折号。然后,它贪婪地消耗掉第一次冲刺和最后一次冲刺之间的所有东西。奇怪的示例数据,但我想表明答案对于所需数据内出现的破折号是稳健的。

关于java - 正则表达式提取字符第一次出现和最后一次出现之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52853639/

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