gpt4 book ai didi

java - 正则表达式 - 获取两个评论之间的代码

转载 作者:行者123 更新时间:2023-11-30 06:33:14 26 4
gpt4 key购买 nike

如何获取

Text t;
Graph g;

来自

// Co
Text t;
Graph g;
// Co

?

// Co\r?\n(.*)\r?\n// Co

只有一行时有效,但不适用于多行。

最佳答案

默认情况下,. 匹配除换行符 (\n) 之外的任何字符,但您可以使用 the Pattern.DOTALL flag使其也匹配换行符。所以,例如,而不是这个:

final Pattern pat = Pattern.compile("// Co\r?\n(.*)\r?\n// Co");

你会用这个:

final Pattern pat = Pattern.compile("// Co\r?\n(.*)\r?\n// Co", Pattern.DOTALL);

同样,您可以使用以下任一样式在正则表达式本身内设置 s 标志:

final Pattern pat = Pattern.compile("// Co\r?\n((?s).*)\r?\n// Co");
final Pattern pat = Pattern.compile("// Co\r?\n(?s:(.*))\r?\n// Co");

它可以让您准确控制正则表达式的哪一部分接受 . 的换行符。 (但我会坚持使用 DOTALL 方法,除非你有一个正则表达式,其中 . 有时意味着一件事,有时意味着另一件事。)

编辑添加:这似乎很有可能——但你必须根据你的用例自己决定——你需要使用非贪婪 量化,.*?,而不是贪婪 量化,.*.

关于java - 正则表达式 - 获取两个评论之间的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202081/

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