[英]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.