C# 无法删除c中值之间的某些字符#
我正在尝试删除从(包括)C# 无法删除c中值之间的某些字符#,c#,.net,string,replace,C#,.net,String,Replace,我正在尝试删除从(包括)rgm到(包括)的字符;1. 输入字符串示例: Sum({rgmdaerudsb;1.Total_Value},{rgmdaerub;1.Major_Value}) 代码: 结果: Sum({rgmdaerub;1.Total_Value},{.Major_Value}) 预期结果: Sum({Total_Value},{Major_Value}) 注意:仅rgm和;1.将保持静态,它们之间的字符将有所不同。为此,我建议使用正则表达式。试试这个: string in
rgm
到(包括)的字符;1.
输入字符串示例:
Sum({rgmdaerudsb;1.Total_Value},{rgmdaerub;1.Major_Value})
代码:
结果:
Sum({rgmdaerub;1.Total_Value},{.Major_Value})
预期结果:
Sum({Total_Value},{Major_Value})
注意:仅
rgm和;1.
将保持静态,它们之间的字符将有所不同。为此,我建议使用正则表达式。试试这个:
string input = "Sum ({rgmdaerudsb;1.Total_Value}, {rgmdaerub;1.Major_Value})";
string result = Regex.Replace(input, @"rgm.*?;1\.", "");
说明:
Regex.Replace的第二个参数采用由以下内容组成的模式:
- rgm(您的起始字符串)
- (点-表示任何字符)
- *?(前面的符号可以出现零次或多次,但在第一次可能的匹配时停止(最短))
- ;1.(结束字符串-需要转义点,否则表示任何字符)
string input = "Sum ({rgmdaerudsb;1.Total_Value}, {rgmdaerub;1.Major_Value})";
string result = Regex.Replace(input, @"rgm.*?;1\.", "");
说明:
Regex.Replace的第二个参数采用由以下内容组成的模式:
- rgm(您的起始字符串)
- (点-表示任何字符)
- *?(前面的符号可以出现零次或多次,但在第一次可能的匹配时停止(最短))
- ;1.(结束字符串-需要转义点,否则表示任何字符)
- 您需要使用正则表达式,其表达式类似于
“rgm(.);1\”
。这是我不知道的,您必须验证与您的模式匹配的确切正则表达式。然后,使用RegEx.Replace()。您需要使用RegEx,其表达式类似于“rgm(.);1\”
。这是我不知道的,您必须验证与您的模式匹配的确切正则表达式。然后,使用RegEx.Replace()。请将其重写为一个。很难遵循“代码、结果、代码”而不是“所有代码,准备运行;结果”。(从根本上说,这感觉像是一个正则表达式在这里更有用……您如何期望运行一次的代码来替换两个值?)关于strEx=strEx.replace(“rgmdaerub;1.”,”)
很抱歉,我是一个初学者,但为什么要将您的解决方案作为注释编写?@AlfieGoodacre-仅rgm
和;1.
将保持不变,它们之间的字符将有所不同。@Mitulátbáti因为刚才已经很清楚的原因,我不是100%确定它会回答OP的问题,所以我对它进行了评论,以防万一-这也不是一个完整的答案,但更多的是一个建议:)请将其改写为一个完整的答案。很难遵循“代码、结果、代码”而不是“所有代码,准备运行;结果”。(从根本上说,这感觉像是一个正则表达式在这里更有用……您如何期望运行一次的代码来替换两个值?)关于strEx=strEx.replace(“rgmdaerub;1.”,”)
很抱歉,我是一个初学者,但为什么要将您的解决方案作为注释编写?@AlfieGoodacre-仅rgm
和;1.
将保持不变,它们之间的字符将有所不同。@Mitulátbáti因为刚才已经很清楚的原因,我不是100%确定它会回答OP的问题,所以我对它进行了评论,以防万一-这也不是一个完整的答案,但更多的是一个建议:)