私はこの文字列を持っています: "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);
「\」が常に文字列に現れることを考えると
var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
_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"
_になります。
バックスラッシュが常に1つしかない場合は、これを使用します。
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, "" );
string s = @"NT-DOM-NV\MTA";
s = s.Substring(10,3);
この拡張メソッドを使用できます。
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"
注:DonotはTrimStart
メソッドを使用します。1つ以上の文字をさらにトリミングする場合があるためです( こちらを参照 ) 。
Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")
試してみてください こちら 。