我正在解析文本文件,我需要删除所有这样的术语:
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 cococo pppoooo"
但它不起作用
感谢
答案 0 :(得分:4)
您需要将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]+ ?", "");
答案 1 :(得分:1)
尝试:
myString=myString.replaceAll("[0-9A-Za-z]+:[0-9A-Za-z]+=", "");
我想保留=
然后从上面的reg exp字符串中删除。
答案 2 :(得分:0)
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.