Java用可变文本替换String

时间:2014-02-06 14:56:11

标签: java regex replaceall

我有一个包含许多字符串的文档:

<rdf:type rdf:resource="http://example.com"/>

其中http://example.com不是常量值,每次都会改变。 字符串必须变为:

<process:valueType rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">http://example.com</process:valueType>

我怎么能用java做?

2 个答案:

答案 0 :(得分:1)

我这样解决了:

result = result.replaceAll("(<rdf:type rdf:resource=\"([^<]*)\"/>)", "<process:valueType rdf:datatype=\"http://www.w3.org/2001/XMLSchema#anyURI\">$2</process:valueType>");

答案 1 :(得分:0)

我会使用lookbehind来查找rdf:datatype并选择"以外的所有内容,这实际上是值的结尾,如下所示:

(?<=datatype=\")[^\"]*

你可以通过前瞻来做到这一点:

(?<=datatype=\").*(?=\")