我在xml文件中有多行。
我的行像<Blog blogDescription="bla bla bla" description="" date="2010-10-10"/>
我正在处理以"<Blog"
开头的所有行:
所以我的路线就像:
<Blog description="bla bla bla" date="2010-10-10"/>
我不知道我可以使用什么样的正则表达式,我只能得到以下内容:
"^<(Blog) .*"
我删除了blogDescription字段:
" blogDescription="
但我不知道如何将blogDescription
值放入描述值。
答案 0 :(得分:2)
如果您已经在使用格式正确的XML,而不是通过正则表达式自己构建解析器,那么为什么不使用可用的XML解析器呢?有很多可以做到这一点。
请参阅此相关问题: Parsing XML in Java
答案 1 :(得分:1)
String val = "<Blog blogDescription=\"bla bla bla\" description=\"\" date=\"2010-10-10\"/>";
String regex = "^<Blog (blogDescription=\"[^\"]*\"\\s+).*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(val);
matcher.matches();
MatchResult result = matcher.toMatchResult();
System.out.println(result.group(1));
String resultString = val.replace(result.group(1), "");
System.out.println(resultString);
答案 2 :(得分:1)
你可以像这样使用:
String str = "<Blog blogDescription=\"bla bla bla\" description=\"\" date=\"2010-10-10\"/>";
System.out.println(str.replaceAll("blogDescription=\"([^\"]+)\"\\s+description=\"[^\"]*\"",
"description=\"$1\""));
。我不知道字符串中是否有换行符。 如果您喜欢字符串中的一个换行符,它将无效: blogDescription =“bla \ nbla”\ n description =;