gpt4 book ai didi

java - 如何使用Java正则表达式提取特定单词前后的字符串

转载 作者:行者123 更新时间:2023-12-02 12:39:05 27 4
gpt4 key购买 nike

我需要在 opResult 之后和另一个字符串 (word+ '=') 之前提取一个字符串

例如:

testest=false opResult=Critical extension not supported random=abc srcPort=10

所以我应该在下一个带有等号的单词之前提取出Critical extension not support

此外,如果后面没有其他字符串,它也应该起作用,这意味着我应该与下面的示例得到相同的结果。

typesOnly=false opResult=Critical extension not supported

我目前提取了最后一个“=”符号之前的所有内容的正则表达式。

opResult=(\S.*)(\s\w+=)

最佳答案

我们可以尝试使用以下模式进行匹配/提取:

.*opResult=(.*?)(?:\\s*\\S+=.*|$)

这里的技巧是能够清楚地表达下一个键何时开始,然后不提取它。

String line = "testest=false opResult=Critical extension not supported random=abc srcPort=10";
String pattern = ".*opResult=(.*?)(?:\\s*\\S+=.*|$)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println(m.group(1));
}

输出:

Critical extension not supported

此处演示:

Rextester

关于java - 如何使用Java正则表达式提取特定单词前后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45004851/

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