C# 正则表达式中的替换和替换模式
我花了4个小时在这个问题上,但我仍然不清楚这应该如何工作。 我想从链接使用逻辑。我想改变C# 正则表达式中的替换和替换模式,c#,regex,C#,Regex,我花了4个小时在这个问题上,但我仍然不清楚这应该如何工作。 我想从链接使用逻辑。我想改变 some123分组到分组some123 我有3个零件,需要更换($1,$2,$3) 我还需要一些东西来改变 name@gmail.com命名 我不清楚如何定义替换以及在我的案例中捕获了什么 感谢您的帮助,我将不胜感激。$1、$2等是指组(即声明外观的索引)。因此,您需要在捕获正则表达式中定义组。您可以使用括号来实现这一点。例如: Regex.Replace("Some123Grouping", @"(Som
some123分组到分组some123
我有3个零件,需要更换($1,$2,$3)我还需要一些东西来改变
name@gmail.com命名
我不清楚如何定义替换以及在我的案例中捕获了什么
感谢您的帮助,我将不胜感激。$1、$2等是指组(即声明外观的索引)。因此,您需要在捕获正则表达式中定义组。您可以使用括号来实现这一点。例如:
Regex.Replace("Some123Grouping", @"(Some)(123)(Grouping)", @"$3$1$2")
Regex.Replace("mr.smith@gmail.com", @"(?<name>.*)(@gmail.com)", @"${name}")
产生“GroupingSome123”
请注意,为了更好的可读性,还可以对组进行命名,然后通过其名称进行引用。例如:
Regex.Replace("Some123Grouping", @"(Some)(123)(Grouping)", @"$3$1$2")
Regex.Replace("mr.smith@gmail.com", @"(?<name>.*)(@gmail.com)", @"${name}")
Regex.Replace(“mr。smith@gmail.com“,@”(?*)(@gmail.com)”,@“${name}”)
“史密斯先生”
顺便说一句,如果你想了解正则表达式的一般介绍(非.NET专用但很好),我建议。$1、$2等是指组(即它们声明外观的索引)。因此,您需要在捕获正则表达式中定义组。您可以使用括号来实现这一点。例如:
Regex.Replace("Some123Grouping", @"(Some)(123)(Grouping)", @"$3$1$2")
Regex.Replace("mr.smith@gmail.com", @"(?<name>.*)(@gmail.com)", @"${name}")
产生“GroupingSome123”
请注意,为了更好的可读性,还可以对组进行命名,然后通过其名称进行引用。例如:
Regex.Replace("Some123Grouping", @"(Some)(123)(Grouping)", @"$3$1$2")
Regex.Replace("mr.smith@gmail.com", @"(?<name>.*)(@gmail.com)", @"${name}")
Regex.Replace(“mr。smith@gmail.com“,@”(?*)(@gmail.com)”,@“${name}”)
“史密斯先生”
顺便说一句,如果您想了解regex的一般介绍(非.NET专用但很好),我建议您。只需使用您的需求即可
Regex.Replace("name@gmail.com", @"(name)(@gmail.com)", @"$1")
但我怀疑你想要的更多的是
Regex.Replace("name@gmail.com", @"(\w*)(@.*)", @"$1")
只需使用您的需求就可以产生
Regex.Replace("name@gmail.com", @"(name)(@gmail.com)", @"$1")
但我怀疑你想要的更多的是
Regex.Replace("name@gmail.com", @"(\w*)(@.*)", @"$1")
如果我理解正确: 有一种模式是文本后接数字后接文本如果这是正确的,则应符合您的模式:
string pattern = @"([A-Za-z]+)(\d+)([A-Za-z]+)";
如果愿意,下一步是让小组出来:
Regex rx = new Regex(pattern);
var match = rx.Match(input);
然后,您可以通过两种方式获得结果,简称:
result = rx.Replace(input, "$3$1$2");
长版本:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = "Some123Grouping";
string pattern = @"([A-Za-z]+)(\d+)([A-Za-z]+)";
Regex rx = new Regex(pattern);
var match = rx.Match(input);
Console.WriteLine("{0} matches found in:\n {1}",
match.Groups.Count,
input);
var newInput = "";
for(int i= match.Groups.Count;i>0;i--){
newInput += match.Groups[i];
}
Console.WriteLine(newInput);
}
}
关于你的第二个问题,似乎很简单:
var result ="name@gmail.com".Split('@')[0];
如果我理解正确: 有一种模式是文本后接数字后接文本如果这是正确的,则应符合您的模式:
string pattern = @"([A-Za-z]+)(\d+)([A-Za-z]+)";
如果愿意,下一步是让小组出来:
Regex rx = new Regex(pattern);
var match = rx.Match(input);
然后,您可以通过两种方式获得结果,简称:
result = rx.Replace(input, "$3$1$2");
长版本:
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string input = "Some123Grouping";
string pattern = @"([A-Za-z]+)(\d+)([A-Za-z]+)";
Regex rx = new Regex(pattern);
var match = rx.Match(input);
Console.WriteLine("{0} matches found in:\n {1}",
match.Groups.Count,
input);
var newInput = "";
for(int i= match.Groups.Count;i>0;i--){
newInput += match.Groups[i];
}
Console.WriteLine(newInput);
}
}
关于你的第二个问题,似乎很简单:
var result ="name@gmail.com".Split('@')[0];
请向我们展示您希望转换的示例字符串。我可以给你一个正则表达式,使用你这里的东西,但是这个端口能不能连接到你的真实数据,我不知道。你真的想要一个正则表达式来捕获一些数据吗?或者你能给我一些上下文吗?请给我们看看你想要转换的示例字符串。我可以给你一个正则表达式,使用你这里的东西,但是这个端口能不能连接到你的真实数据,我不知道。你真的想要一个正则表达式来捕获一些数据吗?或者你能给我一些上下文吗。