Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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# 正则表达式中的替换和替换模式_C#_Regex - Fatal编程技术网

C# 正则表达式中的替换和替换模式

C# 正则表达式中的替换和替换模式,c#,regex,C#,Regex,我花了4个小时在这个问题上,但我仍然不清楚这应该如何工作。 我想从链接使用逻辑。我想改变 some123分组到分组some123 我有3个零件,需要更换($1,$2,$3) 我还需要一些东西来改变 name@gmail.com命名 我不清楚如何定义替换以及在我的案例中捕获了什么 感谢您的帮助,我将不胜感激。$1、$2等是指组(即声明外观的索引)。因此,您需要在捕获正则表达式中定义组。您可以使用括号来实现这一点。例如: Regex.Replace("Some123Grouping", @"(Som

我花了4个小时在这个问题上,但我仍然不清楚这应该如何工作。 我想从链接使用逻辑。我想改变

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];

请向我们展示您希望转换的示例字符串。我可以给你一个正则表达式,使用你这里的东西,但是这个端口能不能连接到你的真实数据,我不知道。你真的想要一个正则表达式来捕获一些数据吗?或者你能给我一些上下文吗?请给我们看看你想要转换的示例字符串。我可以给你一个正则表达式,使用你这里的东西,但是这个端口能不能连接到你的真实数据,我不知道。你真的想要一个正则表达式来捕获一些数据吗?或者你能给我一些上下文吗。