我试图操纵一个字符串,我想删除其中的一些字符。
示例场景:
abc-def-c?p=2&x=5&z=6
我想替换从p
开始的所有字符,并在下一个&
或?
之后使用空字符替换字符。以某种方式删除它们。
输入:abc-def-c?p=2&x=5&z=6
输出:abc-def-c?x=5&z=6
我知道我可以通过Substring
,IndexOf
和Replace
实现这一目标,但遗憾的是,p,x,y部分可能始终不按此顺序存在问题。我需要的东西只能找到部分并替换它。
我的正则表达能力不是很好,所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
答案 1 :(得分:0)
我不喜欢正则表达式,所以如果你是相同的话,你可以使用在这个问题的答案之一中发布的类;
Get url parameters from a string in .NET
将查询字符串转换为字典,然后只删除除要忽略的键之外的所有键...
答案 2 :(得分:0)
检查输入包含 p = ,如下例所示:
显示的方法
public static string cleanString(string input)
{
if (input.Contains("p=") && input.Contains("&"))
{
int startPos = input.IndexOf("p=");
int endPos = input.IndexOf("&",startPos);
input = input.Substring(0,startPos) +
input.Substring(endPos+1,(input.Length-1)-endPos);
}
return input;
}
<强>用法强>
cleanString("abc-def-c?p=2&x=5&z=6"));
cleanString("abc-def-c?"));