[英]Cannot match string with regex pattern when such string is done of multiple lines
我有一个如下字符串:
SYBASE_OCS=OCS-12_5
SYBASE=/opt/sybase/oc12.5.1-EBF12850
//there is a newline here as well
调试器中的字符串如下所示:
我正在尝试匹配SYBASE=
之后的部分,这意味着我正在尝试匹配/opt/sybase/oc12.5.1-EBF12850
。
为此,我编写了以下代码:
String key = "SYBASE";
Pattern extractorPattern = Pattern.compile("^" + key + "=(.+)$");
Matcher matcher = extractorPattern.matcher(variableDefinition);
if (matcher.find()) {
return matcher.group(1);
}
我遇到的问题是 2 行上的这个字符串与我的正则表达式不匹配,即使相同的正则表达式似乎在regex 101上工作正常。
State 我的测试:
SYBASE=...
后跟新行),它将匹配extractorPattern.matcher("SYBASE_OCS=OCS-12_5\\nSYBASE=/opt/sybase/oc12.5.1-EBF12850\\n")
(注意新行前面的双反斜杠),它将匹配.variableDefinition.replace("\n", "\\n")
用于我给matcher()
的内容,但它不匹配。这似乎很简单,但我无法摆脱它。 有人可以帮忙吗?
注意:该格式的字符串由 shell 命令返回,我无法真正改变它的返回方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.