Java 使用regex提取XML中的属性值 ...

Java 使用regex提取XML中的属性值 ...,java,regex,groovy,Java,Regex,Groovy,大家好 在上面的代码中,如何在Groovy/Java中使用Regex提取version属性的值 谢谢。不是java正则表达式,而是Perl正则表达式… /]*?(?/sg 这也是 /]*?(?处理此问题的正则表达式可能类似于: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE ... ]> <abc-config version="THIS" id="abc"> ... <

大家好

在上面的代码中,如何在Groovy/Java中使用Regex提取version属性的值


谢谢。

不是java正则表达式,而是Perl正则表达式…
/]*?(?/sg

这也是

/]*?(?处理此问题的正则表达式可能类似于:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE ... ]> 
<abc-config version="THIS" id="abc">
...
</abc-config>
/<\?xml version="([0-9.]+)"/

/我知道您要求使用正则表达式,但Groovy中的正则表达式有什么问题

假设xml类似于:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE ... ]> 
<abc-config version="THIS" id="abc">
...
</abc-config>
/<\?xml version="([0-9.]+)"/
然后这一行:

def n = new XmlSlurper().parseText( xml )
打印出“这个”


如果您正在使用,可以尝试通过以下方式禁用DOCTYPE检查器:

println n.@version

或者通过使用so来禁用此检查

有些东西你应该知道…我不知道如何说,但是…准备好10000次讲座。哦,欢迎来到Stackoverflow。如果“regex”是指“XPath”,那么你来对地方了。我指的是regex,不是XPath谢谢,但使用regex是一项要求。我不想使用Xpa我能想到的一种方法是在version=“处拆分字符串,然后在”id“处再次拆分字符串=",但这似乎有些草率,我想知道是否有更好的正则表达式?我曾多次读到使用正则表达式解析HTML或XML是不好的,但我不得不这样做,因为XmlParser、XmlSlurper、DOM、SAX似乎没有任何东西在解析我的XML文件,该文件具有DOCTYPE声明。你能建议一种解决方法吗?发布一个问题关于这个特定的问题。大量格式正确的文档都有DOCTYPE声明,并且可以被解析。我不是在寻找如此复杂和我无法理解的东西,而是很多thanks@minirasher-“如此复杂以至于无法理解的事情”几乎是正则表达式存在的理由