我有一个单词,其中有一段说1.2.2
和some text
后跟some other texts
。我想得到这个部分。我创建了一个正则表达式来匹配部分和一些文本。
以下是我的代码:
var word = "1.2.3 area consent testing, sklfjsdlkf jdifgjds visjeflk area consent testing lsdajfgo idsjgosa jfikdjfl343 fjdsl45jl sfgjsoiaetj l area consent testing";
var lowerWord = "area consent testing".ToLower();
var textLower = @word.ToLower().ToString();
Dictionary<int, string> matchRegex = new Dictionary<int, string>();
matchRegex.Add(1, @"(^\d.+(?:\.\d+)*[ \t](" + lowerWord + "))");
foreach (var check in matchRegex)
{
string AllowedChars = check.Value;
Regex regex = new Regex(AllowedChars);
var match = regex.Match(textLower);
if (match.Success)
{
var sectionVal = match.Value;
}
}
现在我的问题是,我只想在我的1.2.3 area consent testing
变量中使用值sectionVal
,但是它给了我整条线。
即
sectionVal = "1.2.3 area consent testing, sklfjsdlkf jdifgjds visjeflk area consent testing lsdajfgo idsjgosa jfikdjfl343 fjdsl45jl sfgjsoiaetj l area consent testing";
答案 0 :(得分:2)
你的正则表达式的开头包含一个未转义的.
,它将匹配任何字符,然后匹配+
。试试这个:
@"^(\d+(\.\d+)*[ \t](" + lowerWord + "))"