对于c#来说相当新,我正在寻找一种搜索特定序列的字符串的方法:
string mytext = "I want to find t56b45 in a string"
在上面的例子中,我想在mytext中搜索“t”的位置,但只有当它后面跟着任意两个数字字符和一个“b”后跟任意两个数字字符时。如果我找到“t”+任意两个数值+“b”+任意两个数值,那么我想创建一个直到该位置的子字符串,即。结果字符串将显示为“我想要查找”
答案 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"
}
}
小提琴:
答案 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);