正则表达式:我当前的所有单词都消失了

时间:2011-02-24 10:17:44

标签: java regex parsing

我需要从文本文件中删除所有字符串,例如:

flickr:user=32jdisffs
flickr:user=acssd
flickr:user=asddsa89

我目前正在使用fields[i] = fields[i].replaceAll(" , flickr:user=.*", "");

然而,这个方法的问题是,flickr:user=之后的任何单词都会从内容中删除,即使在空格之后也是如此。

感谢

3 个答案:

答案 0 :(得分:0)

flickr:user=\w+应该这样做:

String noFlickerIdsHere = stringWithIds.replaceAll("flickr:user=\\w+", "");

<强>参考:

\w =单词字符:[a-zA-Z_0-9]

答案 1 :(得分:0)

您可能需要

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

答案 2 :(得分:0)

按照陈述的问题,你可能想要:

fields[i] = fields[i].replaceAll(" , flickr:user=[^ ]* ", ""); // or " "

这将匹配字符串,包括user的值,但不包括第一个空格,后跟空格,并将其替换为空字符串或单个空格。 然而这将(除了逗号)使用您显示的输入净空结果。这真的是你想要的吗?

我也不确定开头的" , "在哪里适合你展示的例子。

你遇到困难的原因是无界.*将匹配从那一点到输入结束的所有内容(即使这不算什么;这就是*的用途)。对于基于行的正则表达式解析器,这就是行的末尾。