关于Java中正则表达式的问题

关于Java中正则表达式的问题,java,regex,Java,Regex,我正在分析一个文本文件,需要删除以下所有术语: upcoming:event=103499 abc:dfe=123813 ... Format: `term1:term=0000000` 我当前正在使用此reg表达式从我的文本文件中删除此类术语: myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+", ""); 例如,如果我有这样一个字符串: "blabla abc:dfe=123813 cococo ghi:pol=0

我正在分析一个文本文件,需要删除以下所有术语:

upcoming:event=103499
abc:dfe=123813
...

Format: `term1:term=0000000`
我当前正在使用此reg表达式从我的文本文件中删除此类术语:

   myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+", "");
例如,如果我有这样一个字符串:

"blabla abc:dfe=123813 cococo ghi:pol=09339 pppoooo"
它应该变成:
“blabla cocococo pppooo”

但它不起作用

谢谢

试试:

myString=myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+=", "");

I您希望保留
=
然后从上面的reg exp字符串中删除。

您需要将
replaceAll
的返回值分配回字符串引用:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+", "");

但如果要替换整个字符串,可以执行以下操作:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z=]+", "");
编辑:

对于已编辑的问题,您可以使用:

myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+=[0-9]+ ?", "");

codeaddict的答案可以正确地满足您的要求,但它会保留因删除内容而产生的额外空间。以下逻辑也删除了空格:

String myString = "blabla abc:dfe=123813 cococo ghi:pol=09339 pppoooo";
// assumes that the string does not start with ' '
myString = myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z=]+\\ ?", "");
// myString is now equal to "blabla cococo pppoooo" as per your edit.

请提供字段[i]及其工作原理。正则表达式开头的“,”代表什么?是否要删除“=”符号前的文本?如中所示,
comming:event=103499
应该变成
=103499
?@Ingo我已经修复了它@毛里兹·汉森我想把它删除,整个删除string@R0MANARMY它就在那里,我想把它删除。你不能。字符串是不可变的。Hi-Cod,“=”在括号内不起作用。您必须将它放在+号后面。@Code:如果您注意到在代码运行后没有响应。之前:即将到来:事件=103499之后:对不起,我已经更新了我的问题。考虑字符串是由多个术语组成的,而我只需要移除给定格式的字符串。