【发布时间】:2011-03-15 13:12:35
【问题描述】:
我有这个字符串:“NT-DOM-NV\MTA” 如何删除第一部分:“NT-DOM-NV\” 将其作为结果:“MTA”
RegEx 怎么可能?
【问题讨论】:
我有这个字符串:“NT-DOM-NV\MTA” 如何删除第一部分:“NT-DOM-NV\” 将其作为结果:“MTA”
RegEx 怎么可能?
【问题讨论】:
您可以使用以下代码:
str = str.Substring (10); // to remove the first 10 characters.
str = str.Remove (0, 10); // to remove the first 10 characters
str = str.Replace ("NT-DOM-NV\\", ""); // to replace the specific text with blank
// to delete anything before \
int i = str.IndexOf('\\');
if (i >= 0) str = str.SubString(i+1);
【讨论】:
string.TrimStart(what_to_cut); // Will remove the what_to_cut from the string as long as the string starts with it.
"asdasdfghj".TrimStart("asd" ); 将产生"fghj"。"qwertyuiop".TrimStart("qwerty"); 将产生"uiop"。
public static System.String CutStart(this System.String s, System.String what)
{
if (s.StartsWith(what))
return s.Substring(what.Length);
else
return s;
}
"asdasdfghj".CutStart("asd" ); 现在将产生"asdfghj"。"qwertyuiop".CutStart("qwerty"); 仍将产生"uiop"。
【讨论】:
鉴于“\”总是出现在字符串中
var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
【讨论】:
@"NT-DOM-NV\MTA\ABC\file" 并且拆分后 NT-DOM-NV ,我需要拆分后的第一个字符串。在这种情况下,它应该是MTA。如果我必须拆分NT-DOM-NV\MTA,那么它应该返回ABC。 TIA
如果总是只有一个反斜杠,请使用:
string result = yourString.Split('\\').Skip(1).FirstOrDefault();
如果可以有多个,而您只想拥有最后一部分,请使用:
string result = yourString.SubString(yourString.LastIndexOf('\\') + 1);
【讨论】:
试试
string string1 = @"NT-DOM-NV\MTA";
string string2 = @"NT-DOM-NV\";
string result = string1.Replace( string2, "" );
【讨论】:
你可以使用这个扩展方法:
public static String RemoveStart(this string s, string text)
{
return s.Substring(s.IndexOf(s) + text.Length, s.Length - text.Length);
}
在您的情况下,您可以按如下方式使用它:
string source = "NT-DOM-NV\MTA";
string result = source.RemoveStart("NT-DOM-NV\"); // result = "MTA"
注意:不要不要使用TrimStart 方法,因为它可能会进一步修剪一个或多个字符 (see here)。
【讨论】:
string s = @"NT-DOM-NV\MTA";
s = s.Substring(10,3);
【讨论】:
Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")
试试here。
【讨论】: