C# 如何以通用方式从字符串中删除单词

C# 如何以通用方式从字符串中删除单词,c#,C#,我有一个字符串,它基本上是一个url,类似于APIPAth/resources/customers/SSNNumber/authorizations/contracts SSNNNumber可以是任何值。这是我想从字符串中删除的实际SSN号,字符串应该类似于APIPAth/resources/customers/authorizations/contracts 我找不到一个不硬编码单词和删除字符串的合适解决方案 我试着使用Find和Replace,但我认为该函数需要特定的单词查看您提供的URL,

我有一个字符串,它基本上是一个url,类似于APIPAth/resources/customers/SSNNumber/authorizations/contracts

SSNNNumber可以是任何值。这是我想从字符串中删除的实际SSN号,字符串应该类似于APIPAth/resources/customers/authorizations/contracts

我找不到一个不硬编码单词和删除字符串的合适解决方案


我试着使用Find和Replace,但我认为该函数需要特定的单词查看您提供的URL,似乎您只想去掉数字。您可以通过这一行实现这一点:

var output = Regex.Replace(input, @"[\d]", string.Empty);

有很多种方法可以给这只猫剥皮,这取决于什么东西保持静止

一种方法是用分隔符拆分url并将其重新连接

var url = @"APIPAth/resources/customers/SSNNumber/authorizations/contracts";
var items = new List<string>(url.Split('/'));
items.RemoveAt(3);
url = string.Join("/", items);

如果您详细说明您在通用解决方案中所期望的,即什么部分保持静态,那么我可以更好地帮助您

如果SSN在数量上,那么它必须具有这种形式的
000 00 0000
意味着
9位
结果。 用
/
解析一个字符串,得到一个元素数组,比如说
解析的

for(int i=0; i<parsed.length; i++){
  if(parsed[i].length === 9){
    ...keep this i...
  }
}

用于(int i=0;您要寻找的概念是一个正则表达式。@Pierre Luccinoult似乎有一个并列的需求。您称它为ssn,但随后说它可以是任何值。它必须是一种特定的格式吗?它总是在url中的某个位置吗?我们如何识别它?我添加了SSNNNumber作为示例。string将包含一个人的SSN编号,每个人的SSN编号不同,我正在尝试将其从字符串中删除。该字符串将始终包含SSN编号前后的“APIPAth/resources/customers/”和“/authorizations/contracts”。我的目标是从字符串中删除唯一的SSN编号
for(int i=0; i<parsed.length; i++){
  if(parsed[i].length === 9){
    ...keep this i...
  }
}