Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串中修剪前导的n个字母字符_C#_Regex - Fatal编程技术网

C# 从字符串中修剪前导的n个字母字符

C# 从字符串中修剪前导的n个字母字符,c#,regex,C#,Regex,我需要从字符串中删除前n个字母字符 示例: a123456->123456 abc123456->123456 abc123456def->123456def尝试以下方法: String output = Regex.Replace(input, @"^[^\d]+", String.Empty); 下面是正则表达式的工作原理: ^[^\d]+ ^将表达式锚定到字符串的开头 [^\d]是匹配所有非整数值的字符集 +通过使其匹配一次或多次来限定[^\d] 因此,基本上,这个正则表达式匹配字符串中

我需要从字符串中删除前n个字母字符

示例:

a123456->123456
abc123456->123456

abc123456def->123456def

尝试以下方法:

String output = Regex.Replace(input, @"^[^\d]+", String.Empty);
下面是正则表达式的工作原理:

^[^\d]+

^
将表达式锚定到字符串的开头
[^\d]
是匹配所有非整数值的字符集
+
通过使其匹配一次或多次来限定
[^\d]


因此,基本上,这个正则表达式匹配字符串中的所有非整数字符,直到找到整数字符。

子字符串是否与原始字符串共享基础字符[]?可能没有;C#字符串的实现可能与Java字符串完全不同。Java字符串有一个内部字符[],可以与substring()方法创建的字符串共享。我只是想知道C#string是否也有同样的功能。如果他们不这样做,这个方法看起来会非常低效(大量的char[]复制)。显然,C#strings无法共享底层数据:。因此,我不喜欢循环中调用的所有.Substring。在C#中,字符串可以用作char[],例如:char a=“asdf”[0];
static string AlphaTrimRight(string value)
{
    while (!Char.IsNumber(value[0]))
        value = value.Substring(1, value.Length - 1);
    return value;
}