正则表达式在C#中连接两个字符串

时间:2015-05-13 23:15:33

标签: c# regex concatenation

是否可以使用Regex从输入字符串连接两个子字符串 示例:输入字符串" ABTTPQR 00100300250000"我想要前两个角色" AB"和前9位" 001003002"并将这两个字符串连接到一个" AB001003002"

3 个答案:

答案 0 :(得分:2)

使用引用的更短的变化:

Regex.Replace("ABTTPQR 00100300250000", @"^(\w{2})\w*\s(\d{9})\d+$", @"$1$2")
// = "AB001003002"

答案 1 :(得分:1)

您可以执行以下操作:

EndXXX

正则表达式解释:

Regex regex = new Regex(@"(\w{2})\w*\s(\d{9})\d*");
var matches = regex.Matches("ABTTPQR 00100300250000");
String output = matches[0].Groups[1].Value + matches[0].Groups[2].Value;
//AB001003002

(\w{2})\w*\s(\d{9})\d* 将匹配前2个字符,然后它将查找更多字符和空格(\w{2}),然后它将匹配前9个数字\w*\s,然后将查找更多数字(\d{9})

\d*将匹配项捕获到以c#访问的组中,如代码示例所示:{1}用于组1(字符)和()用于组2(数字)

答案 2 :(得分:0)

尝试此功能

public static string Concat (string inputString, int charsNumber, int digitsNumber)
{
   string [] block = inputString.Split(' ');
   return block[0].Substring(0,charsNumber) + block[1].Substring(0,digitsNumber);
}

在你的代码中调用它将返回想要的文本

Concat("ABTTPQR 00100300250000",2,9)