Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何在regex替换表达式vb.net中只保留一个以上字符的字符串_Xml_Regex_Vb.net - Fatal编程技术网

Xml 如何在regex替换表达式vb.net中只保留一个以上字符的字符串

Xml 如何在regex替换表达式vb.net中只保留一个以上字符的字符串,xml,regex,vb.net,Xml,Regex,Vb.net,好的,我要从我从维基百科下载的xml文件中删除一些引号。到目前为止,文本看起来是这样的(忽略换行符,这只是为了更容易阅读): 但这似乎不起作用。未捕获之间的文本并将其替换为“” 任何帮助或建议都会很好!谢谢。这不是否定字符类的工作方式。该类不允许任何单个字符/,r,e,f,。此外,您甚至根本不想排除/ref>,因为您还想删除所有中间ref。您只需使用*。此外,您不需要lookarounds,因为它们将内部匹配的内容排除在匹配之外。但您确实希望删除这些标记。因此,在您的情况下,它应该简单到: "&

好的,我要从我从维基百科下载的xml文件中删除一些引号。到目前为止,文本看起来是这样的(忽略换行符,这只是为了更容易阅读):

但这似乎不起作用。未捕获
之间的文本并将其替换为“”


任何帮助或建议都会很好!谢谢。

这不是否定字符类的工作方式。该类不允许任何单个字符
/
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>"