我有一个字符串ABC|DEF|XYZ|TT1234
现在,我只想获得TT1234并用YY替换TT。
输入:ABC|DEF|XYZ|TT1234
输出:YY1234
我有一个表达式来获取最后一部分([^|]+$)
,但不确定下一步该做什么。
答案 0 :(得分:1)
不确定问题是否最好用正则表达式解决,或者此正则表达式是否适用于所有输入,但在C#中,您可以使用Regex.Replace
。
var input = "ABC|DEF|XYZ|TT1234";
var reg = "([A-Z]{2})(?=[^|]+$)";
var output = Regex.Replace(input, reg, "YY");
Console.WriteLine(output);
Console.ReadLine();
正则表达式的解释 -
([A-Z]{2})
找到任意两个大写字母
(?=[^|]+$)
负面展望不是|和行尾。我们使用负向前看因此这个位没有被捕获
答案 1 :(得分:0)
RegEx可用于查找您的重要部分,但替换是另一回事,您使用c#
标记标记此问题,因此,我认为这可以帮助您(我使用的是Regex.Replace,但是简单的替换将完成工作):
string input = "ABC|DEF|XYZ|TT1234";
Regex regex = new Regex(@"([^|]+$)");
Match match = regex.Match(input);
if (match.Success)
{
//replace
string output = Regex.Replace(match.Value, "TT", "YY");
Console.WriteLine(output);
}
Console.Read();
答案 2 :(得分:0)
C#中的正则表达式
string input = "ABC|DEF|XYZ|TT1234";
Regex regex = new Regex(@"([^|]+$)");
string result = regex.Replace("TT", "YY");
认为这是你想要实现的目标。
答案 3 :(得分:0)
如果字符串是使用|构建的作为分隔符,为什么要使用正则表达式?
string input = "ABC|DEF|XYZ|TT1234";
var last = input.Split("|".ToCharArray()).Last()
var done = last.Replace("TT","YY");
(VS更新,无法验证语法)
答案 4 :(得分:0)
一种无需正则表达式的简单方法:
string input = "ABC|DEF|XYZ|TT1234";
string output = "YY" + input.Substring(input.LastIndexOf("TT") + 2);
或者最后一个字符可以包含字母:
string output = "YY" + input.Substring(input.LastIndexOf("|TT") + 3);