gpt4 book ai didi

Java Regex - 匹配不以字符结尾的多行

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

如果数据跨越多行,它将以“;”结尾,但可能会有包含“;”的注释文本。

This is test
b=4
/* a=b+c; */
b=5
c=7
/* a=b-c; */
a=b*c;

我尝试使用这个正则表达式。

(This is test).+?;

返回

This is test
b=4
/* a=b+c;

我想知道整个文本匹配的正确正则表达式。

最佳答案

因为您试图忽略换行符并将 ; 定义为自定义行终止符,所以最好使用 String#split(String) 。尝试以下模式:

\;(?!\s*\*\/)

如果我将它与你的字符串一起使用:

String str = "This is test"
+"\nb=4"
+"\n/* a=b+c; */"
+"\nb=5\nc=7"
+"\n/* a=b-c; */"
+"\na=b*c;";

for(String s : str.split("\\;(?!\\s*\\*\\/)")) {
System.out.println(s);
}

我得到以下输出:

This is test
b=4
/* a=b+c; */
b=5
c=7
/* a=b-c; */
a=b*c

关于Java Regex - 匹配不以字符结尾的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673855/

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