regex 如何删除字符串中已定义的部分?

nbewdwxp  于 2022-12-27  发布在  其他
关注(0)|答案(8)|浏览(159)

我有这样的字符串:“NT-DOM-NV\MTA”如何删除第一部分:“NT-DOM-NV\”要将此作为结果:“MTA”
使用RegEx怎么可能呢?

6pp0gazn

6pp0gazn1#

您可以使用以下代码:

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);
gupuwyp2

gupuwyp22#

假定“\”始终出现在字符串中

var s = @"NT-DOM-NV\MTA";
var r = s.Substring(s.IndexOf(@"\") + 1);
// r now contains "MTA"
4si2a6ki

4si2a6ki3#

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"

alen0pnh

alen0pnh4#

如果始终只有一个反斜杠,请使用以下命令:

string result = yourString.Split('\\').Skip(1).FirstOrDefault();

如果可以有多个,而您只想拥有最后一部分,请使用以下命令:

string result = yourString.SubString(yourString.LastIndexOf('\\') + 1);
nkcskrwz

nkcskrwz5#

试试看

string string1 = @"NT-DOM-NV\MTA";
string string2 = @"NT-DOM-NV\";

string result = string1.Replace( string2, "" );
xdyibdwo

xdyibdwo6#

您可以使用以下扩展方法:

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)。

hsgswve4

hsgswve47#

Regex.Replace(@"NT-DOM-NV\MTA", @"(?:[^\\]+\\)?([^\\]+)", "$1")

试试here

ugmeyewa

ugmeyewa8#

string s = @"NT-DOM-NV\MTA";
 s = s.Substring(10,3);

相关问题