繁体   English   中英

正则表达式:从字符串到对象的匹配

[英]Regex: Get match from string into an object

我想用一个符合规则的字符串中的记录填充一个对象。 规则是如果它包含至少3个点,右边有一个空格( ". . . " ),那么我提取左边的第一个文本,我刚刚选择的文本及其长度。

string strdata = "Nume. . . . . . .Data nasterii. . . . .Nr. . . .";
Regex rgx = new Regex(". . . ");//At least 3 dots ". . . "
foreach (Match match in rgx.Matches(strdata))
    lst.Add(new obj1{ Label = "?", Value = match.Groups[1].Value, Length = match.Groups[1].Length });

我想要实现:

在此输入图像描述

:我必须使用哪种模式?

在正则表达式中, . 意味着匹配任何角色。 匹配一个. ,你需要将其作为\\.来逃避\\. 要匹配表达式的2个或更多实例,请使用{2,}

string strdata = "Nume. . . . . . .Data nasterii. . . . .Nr. . . .";
Regex rgx = new Regex(@"(.+?)(\.( \.){2,})");//At least 3 dots ". . . "
foreach (Match match in rgx.Matches(strdata))
{
    lst.Add(new obj1
    {
        Label = match.Groups[1].Value,
        Value = match.Groups[2].Value,
        Length = match.Groups[2].Length
    });
}

您可以使用@"([\\w\\s]*)([\\. ]{3,})"来实现我的假设。

正则表达式会将文本分成不同的组,在这些组中,您将获得文本值和句点。

您可以通过输入Nume. . . . . . .Data nasterii. . . . .Nr. . . .使用此Regex Tester进行尝试Nume. . . . . . .Data nasterii. . . . .Nr. . . . Nume. . . . . . .Data nasterii. . . . .Nr. . . . 进入“源”字段,然后在([\\w\\s]*)([\\. ]{3,})输入“模式”字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM