是否可以使用Regex从输入字符串连接两个子字符串 示例:输入字符串" ABTTPQR 00100300250000"我想要前两个角色" AB"和前9位" 001003002"并将这两个字符串连接到一个" AB001003002"
答案 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)