Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于删除'的正则表达式-1';从文本文件_Java_Regex - Fatal编程技术网

Java 用于删除'的正则表达式-1';从文本文件

Java 用于删除'的正则表达式-1';从文本文件,java,regex,Java,Regex,我想使用正则表达式从文本文件中删除-1。 我尝试过这个表达式(“-?+[1]”,“)。但是由于文件中有(1)个正的,我不想删除1。此表达式将删除文件中的所有表达式。我对regex不熟悉。有人能帮我吗 我的文本文件如下所示: 2 -1 11 -1 1 -1 11 -1 11 -1 1 -1 11 -1 1 -1 1 -1 11 -1 2 -1 1 -1 11 -1 1 -1 2 -1 11 -1 3 -1 1 -1 11 -1 1 -1 3 -1.... -1的正则表达式就是-1。以此作为论据

我想使用正则表达式从文本文件中删除-1。 我尝试过这个表达式
(“-?+[1]”,“)
。但是由于文件中有(1)个正的,我不想删除1。此表达式将删除文件中的所有表达式。我对regex不熟悉。有人能帮我吗


我的文本文件如下所示:

2 -1 11 -1
1 -1 11 -1
11 -1 1 -1
11 -1 1 -1 1 -1
11 -1 2 -1 1 -1
11 -1 1 -1 2 -1
11 -1 3 -1 1 -1
11 -1 1 -1 3 -1....

-1的正则表达式就是
-1
。以此作为论据


(正则表达式基于带有通配符样式修饰的字符串文字。)

以下技巧将完成此任务

stringObj.replaceAll(“-1”,即“”)


是的,向前看或向后看都不行。

如果你想删除
-1
后面的空格(这似乎只在
-1
不在一行末尾时存在),如果你想防止意外地将
-10
更改为
-0
,你可以使用正则表达式,替换为

-1\b ?
使用空字符串

说明:

-1#匹配-1
\b#确保数字在这里结束
[ ]? # 匹配可选的空格字符
测试一下

请注意,您需要在Java中转义反斜杠:

String resultString = subjectString.replaceAll("-1\\b ?", "");

你为什么不直接用它呢。没有真正需要正则表达式。@KevinEsche
String#replace
使用正则表达式,只是这里需要的不是非常复杂的正则表达式:)@Thomas这样做吗?我一直认为
String#replaceAll
String#replaceFirst
是使用正则表达式的唯一替换方法。@Thomas:在内部,是的。但是,如果使用
replace()
,在这些简单的情况下更容易避免错误。如果输入中有
-10
怎么办?是否要将其更改为
0
?或者你能排除这个案子吗?@Keppil。。。对更正。谢谢你指出错误(