我在练习解析XML。Java正则表达式点与实际点字符(。)不匹配
我的一句话就是
<SINGER>I.O.I</SINGER> came back on <MONTH>May</MONTH> 4, <YEAR>2016</YEAR>.
我用两个
Pattern.compile("<[^/^>.]+>[^<^>.]+</[^>.]+>");
和
Pattern.compile("<[^/^>.]+>[^<^>\\..]+</[^>.]+>");
然而,正则表达式不能匹配
<SINGER>I.O.I</SINGER>
我觉得我的正则表达式,因为这些点的行为怪异,因为他们可以匹配
<SINGER>I-O-I</SINGER>
我该怎么办?
谢谢。
即使这是惯例,你要注意,这不是*有效* XML(所以它的如果你的目标是解析真正的XML),你不应该使用正则表达式来解析标记语言(XML,HTML,XHTML,* ML) – BackSlash
@BackSlash为什么它不是有效的XML? –
如果您正在处理XML,则应使用XML技术来完成此操作,例如XML解析器,XPath和XSLT。一般来说,正则表达式不足以适应XML。 – EJP