gpt4 book ai didi

java - 我无法让 useDelimiter() 配合

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:06 26 4
gpt4 key购买 nike

我正在开发一个Java项目,我试图让useDelimiter删除除“=”和“,”之间的文本之外的所有内容。例如,在文件的第一行我想保留“ThermostatNight”。

文本文件如下所示:

   Event=ThermostatNight,time=0

Event=LightOn,time=2000

我已经能够使用此代码执行完全相反的操作:

s.useDelimiter("=(.*?),");

有什么办法可以调整它以达到相反的效果吗?

最佳答案

试试这个:

s.replaceAll("([a-zA-Z]*=)([a-zA-Z]*)(,.*)","$2")

这遵循您所展示的模式。如果它发生变化,您将必须更改此正则表达式。

在这里查看:http://regex101.com/r/jN8iR8

请参阅“匹配组”部分,您将看到组 2 就是您想要的结果。

替换全部方法仅替换第 2 组的所有内容,即 =, 之间的内容

编辑

正如OP所说,s是一个扫描仪

Scanner s = new Scanner(new File("YOURFILE"));
while (s.hasNext()) {
String text = s.next();
System.out.println( text.replaceAll("([a-zA-Z]*=)([a-zA-Z]*)(,.*)","$2") );
}
s.close();

关于java - 我无法让 useDelimiter() 配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20482320/

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