搜索字符串以获取特定序列

时间:2016-05-31 23:21:24

标签: c# regex string

对于c#来说相当新,我正在寻找一种搜索特定序列的字符串的方法:

string mytext = "I want to find t56b45 in a string"

在上面的例子中,我想在mytext中搜索“t”的位置,但只有当它后面跟着任意两个数字字符和一个“b”后跟任意两个数字字符时。如果我找到“t”+任意两个数值+“b”+任意两个数值,那么我想创建一个直到该位置的子字符串,即。结果字符串将显示为“我想要查找”

2 个答案:

答案 0 :(得分:0)

使用Regex

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        // \s : Matches a space
        // t : Exact match t
        // \d{2} : Any digit, 2 repetition
        // t : Exact match b
        // \d{2} : Any digit, 2 repetition
        var match = Regex.Match("I want to find t56b45 in a string", @".*(?=\st\d{2}b\d{2})");

        if(match.Success)
            Console.WriteLine("\"" + match.Value + "\"");
        else
            Console.WriteLine("Nothing found.");
        // Outputs: "I want to find"
    }
}

小提琴:

https://dotnetfiddle.net/kguwDW

答案 1 :(得分:0)

所以这是我最终使用的代码,似乎完成了工作并忽略了案例

 var tempmatch = Regex.Match(TempCleaned, "(?i)y[0-9]+(?i)z[0-9]+");

            if (tempmatch.Success)
            {
                //clean all text from YxxZxx

             string NewName = TempCleaned.Substring(0, tempmatch.Index -1);