Xml 如何在regex替换表达式vb.net中只保留一个以上字符的字符串
好的,我要从我从维基百科下载的xml文件中删除一些引号。到目前为止,文本看起来是这样的(忽略换行符,这只是为了更容易阅读): 但这似乎不起作用。未捕获Xml 如何在regex替换表达式vb.net中只保留一个以上字符的字符串,xml,regex,vb.net,Xml,Regex,Vb.net,好的,我要从我从维基百科下载的xml文件中删除一些引号。到目前为止,文本看起来是这样的(忽略换行符,这只是为了更容易阅读): 但这似乎不起作用。未捕获之间的文本并将其替换为“” 任何帮助或建议都会很好!谢谢。这不是否定字符类的工作方式。该类不允许任何单个字符/,r,e,f,。此外,您甚至根本不想排除/ref>,因为您还想删除所有中间ref。您只需使用*。此外,您不需要lookarounds,因为它们将内部匹配的内容排除在匹配之外。但您确实希望删除这些标记。因此,在您的情况下,它应该简单到: "&
之间的文本并将其替换为“”
任何帮助或建议都会很好!谢谢。这不是否定字符类的工作方式。该类不允许任何单个字符
/
,r
,e
,f
,
。此外,您甚至根本不想排除/ref>
,因为您还想删除所有中间ref
。您只需使用*
。此外,您不需要lookarounds,因为它们将内部匹配的内容排除在匹配之外。但您确实希望删除这些标记。因此,在您的情况下,它应该简单到:
"<ref.*/ref>"
“”
由于*
是贪婪的,所以这一匹配将从第一个
开始-通常是贪婪的一个大问题,但在您的特定情况下,这正是您想要的
您可能希望使用
RegexOptions.Singleline
,以便
匹配换行符(如果有)。嘿。我对regex很陌生,但我想我理解贪婪是什么->它会找到结束部分的最后位置(/ref>)?如果是这样的话,我该如何阻止这一切,因为页面上下可能会有很多这样的引用,中间有想要的文本。我明白了,添加一个?像这样。谢谢你的帮助!:D@FraserOfSmeg在这种情况下,您可以像
一样将其取消冻结,也可以使用)*/ref>
(这是您最初想要的)。或者,最好使用XML解析器!
Dim temptext As String = newsrt.ToString
Dim expression As New Regex("(?<=\<ref)[^/ref>]+(?=/ref>)")
Dim resul As String = expression.Replace(temptext, "")
"<ref.*/ref>"