gpt4 book ai didi

java - 匹配任何字符直到边界字符的模式

转载 作者:行者123 更新时间:2023-12-01 23:23:21 25 4
gpt4 key购买 nike

我有字符串:String myStr = "Operation=myMethod\nDataIn=A;B;C;D\nDataOut=X;Y;Z\n"

我想匹配 DataIn。

我有以下代码:

Pattern pattern = Pattern.compile("Operation=myMethod.*DataIn=(.*)?\n", Pattern.DOTALL);
Matcher matcher = pattern.matcher(myStr);
if (matcher.find()) {
return matcher.group(1);
}

问题是它返回:“A;B;C;D\nDataOut=X;Y;Z\n”

我尝试使用以下模式:“Operation=myMethod.DataIn=(.?\n)”然后返回“A;B;C;D\n”。我不希望返回最后的“\n”。

最佳答案

将正则表达式中的 (.*) 替换为 ([^\n]*) 以匹配直到换行符,或 ([^\b]*) 匹配直到任何边界字符。

Pattern pattern = Pattern.compile("Operation=myMethod.*DataIn=([^\\n]*)?\n", Pattern.DOTALL);
Matcher matcher = pattern.matcher(myStr);
if (matcher.find()) {
return matcher.group(1);
}

字符类中的 [^...] 构造意味着匹配不在此集合中的任何字符。

关于java - 匹配任何字符直到边界字符的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20361760/

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