【发布时间】:2023-04-03 14:13:01
【问题描述】:
我有一个如下所示的文本文件:
[* content I want *]
[ more content ]
我想阅读该文件并能够提取content I want。我能做的最好的就是在下面,但它会返回
[ more content ]
请注意,content I want 和 more content 都包含方括号和圆括号,但它们从不包含 [* 或 *]。
public static String parseFile(String src) throws IOException
{
String s = "";
File f = new File(src);
Scanner sc = new Scanner(f);
sc.useDelimiter("\\[\\*([^]]+)\\*\\]");
s= sc.next();
sc.close();
return s;
}
【问题讨论】:
-
注意完全是骗子,但同样的事情:stackoverflow.com/questions/13174624/…
-
使用匹配器和查找而不是扫描仪。
-
如果您的内容可以包含括号,为什么要排除它们?
[^]]+那部分不应该是.+吗? -
这个
\[\* (.+) \*\]有什么问题 -
我还想补充一点,您可能会发现站点debuggex.com 对正则表达式问题很有用。您可以在其中粘贴一个正则表达式,它会直观地向您显示匹配的内容。