C# 如何使用正则表达式c更改字符串中的文件名#

C# 如何使用正则表达式c更改字符串中的文件名#,c#,xml,regex,string,replace,C#,Xml,Regex,String,Replace,我正确地将xml文件上载到字符串变量 我的xml文件的格式如下 <Asset>01.xmf</Asset> <Index>0</Index> </Mesh> </BodyPart0> <BodyPart1> <BodyPartId>1</BodyPartId> <Material> <TextureMap0> <Asset>chkn_xrf_bd7580

我正确地将xml文件上载到字符串变量

我的xml文件的格式如下

<Asset>01.xmf</Asset>
<Index>0</Index>
</Mesh>
</BodyPart0>
<BodyPart1>
<BodyPartId>1</BodyPartId>
<Material>
<TextureMap0>
<Asset>chkn_xrf_bd7580097080fe4f10fbf857ed5c27b8.xrf</Asset>
<Index>-1</Index>
</TextureMap0>
</Material>
<Mesh>
<Asset>02.xmf</Asset>
<Index>1</Index>
</Mesh>
</BodyPart1>
<BodyPart10>
<BodyPartId>10</BodyPartId>
<Material>
<TextureMap0>
<Asset>chkn_xrf_3b5aa82b4c3e67599e4091f0fcefa2a8.xrf</Asset>
<Index>-1</Index>
</TextureMap0>
</Material>
<Mesh>
<Asset>11.xmf</Asset>

如何使用regex解决它呢?

只需使用String.Replace()而不是regex.Replace()…

。是正则表达式中的元字符。这意味着您需要在它前面加一个反斜杠来避开它,以便正则表达式查找文本。而不是元字符。意思是“任何角色中的一个”

所以你想做\。但是,等等——根据您在中生成正则表达式的内容,反斜杠可能被认为是重要的,甚至在它到达正则表达式解析引擎之前就被转义了。您可能需要\\。(因此\\被转换为\其中带有.被转换为.literal)

在此处阅读regex中的所有元字符:


编辑:为了证明我的观点-我不得不编辑这篇文章,并将所有的反斜杠加倍,这样你就能看到正确的数量:)

。当这是一个如此简单的查找替换时,很多人被正则表达式夸大了。我第一次尝试了普通的方法。stringINDEX=stringINDEX.Replace(lbString1,lbString2);但由于不工作,这是特殊字符“.”(点)带来的问题。但不知道如何使用正则表达式,有什么帮助吗?
stringINDEX string = GetXmlString (indexXML);/ / Load xml file in stringINDEX

string pattern = lbString1; / / lbString1 = "01.xmf" 
Rgx = new Regex Regex (pattern);

stringINDEX = rgx.Replace (stringINDEX, lbString2);/ / lbString2 = "newNAME.xmf"