Java 用于获取多行字符串/StringBuffer值的正则表达式

Java 用于获取多行字符串/StringBuffer值的正则表达式,java,regex,Java,Regex,假设我们有一个字符串,如: String str = "Some value" + "value 2" + variable + "value 3"; 我想要一个多行正则表达式,它可以给我str的值 对于字符串,我使用了“(.+)\\s*[+=]\\s*(.+)(.*)[\\+]”,但对于许多可能的字符串声明,它都失败了 也适用于StringBuffer,如: query.append("Some Value").append(" value 2") .ap

假设我们有一个字符串,如:

String str = "Some value" +
             "value 2" + variable + "value 3";
我想要一个多行正则表达式,它可以给我
str
的值

对于字符串,我使用了
“(.+)\\s*[+=]\\s*(.+)(.*)[\\+]”
,但对于许多可能的字符串声明,它都失败了

也适用于StringBuffer,如:

query.append("Some Value").append(" value 2")
     .append(variable).append(" value 3");
对于这个多行正则表达式,它可以为我提供
query

对于StringBuffer,我使用了
“[\\s]*([\\w]*)\\。追加[\\s]*[([\\s]*([\“][^\”]\“\”]*[\”])(.*)[].*.


提前感谢。

使用
模式
并使用
模式.DOTALL
编译正则表达式


顺便说一句,为了匹配一个参数,您只需要使用
\(
(即,
“\\”(
)引用时),不需要字符类。

多行选项所做的只是更改定位点的行为,
^
$
,使它们在行边界以及输入的开始/结束处匹配。可能您正在考虑DOTALL选项,它允许
元字符匹配所有字符,包括换行符。我认为你需要为我们缩小问题的范围。现在看来你正试图用正则表达式代替Java编译器。