gpt4 book ai didi

c# - RegEx 帮助 - 从 JavaScript 转换为 C#

转载 作者:太空狗 更新时间:2023-10-30 01:11:34 25 4
gpt4 key购买 nike

我有一个字符串,我需要对其进行多次搜索和替换以删除属性内的前导和尾随空格。此处显示了之前和之后的效果(视觉上和它工作的 JS 示例):

http://lloydi.com/x/re/

现在,我需要在 C# 中执行等效操作 - 替换字符串中的所有引用。但我真的被困住了。我知道模式是正确的,如 JS 版本所示,但语法/转义语法让我头疼。

这是我所拥有的,但当然它不起作用;-)

//define the string
string xmlString = "<xml><elementName specificattribute=" 111 222 333333 " anotherattribute="something" somethingelse="winkle"><someotherelement>value of some kind</someotherelement><yetanotherelement>another value of some kind</yetanotherelement></elementName></xml>";

// here's the regExPattern - the syntax checker doesn't like this at all
string regExPattern = "/(specificattribute=)"\s*([^"]+?)\s*"/g";

// here's the replacement
string replacement = "$1\"$2\"";

Regex rgx = new Regex(regExPattern);
string result = rgx.Replace(xmlString, replacement);

谁能告诉我我方法的错误?

非常感谢!

最佳答案

不要为此任务使用正则表达式。 .NET 具有强大的 XML 文档操作工具。试试这个:

XDocument doc = XDocument.Load("input.xml");
foreach (XAttribute attr in doc.Descendants("elementName")
.Attributes("specificattribute"))
{
attr.Value = attr.Value.Trim();
}
doc.Save("output.xml");

关于c# - RegEx 帮助 - 从 JavaScript 转换为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com