REGEX:什么意思?后面跟着+
本文关键字:什么 意思 REGEX | 更新日期: 2023-09-27 18:11:08
很抱歉问这个问题,但我真的卡住了。这个代码属于一个已经离开公司的人。这会引起问题。
protected override string CleanDataLine(string line)
{
//the regular expression for GlobalSight log
Regex regex = new Regex("'".+'"");
Match match = regex.Match(line);
if (match.Success)
{
string matchPart = match.Value;
matchPart =
matchPart.Replace(string.Format("'"{0}'"",
Delimiter), string.Format("'"{0}'"", "*+*+"));
matchPart = matchPart.Replace(Delimiter, '_');
matchPart =
matchPart.Replace(string.Format("'"{0}'"", "*+*+"),
string.Format("'"{0}'"", Delimiter));
line = line.Replace(match.Value, matchPart);
}
return line;
}
我花了很多时间研究。他想要完成什么?
谢谢你的帮助。
这个正则表达式匹配
- a quote (
"
), - 后面跟着一个或多个(
+
)字符(除换行符(.
)外的任何字符,尽可能多), - 后接引号
"
。
这不是一个很好的正则表达式。例如,在字符串foo "bar" baz "bam" boom
中,它将匹配"bar" baz "bam"
。
如果目的是匹配带引号的字符串,更合适的正则表达式是"[^"]*"
。
。是除'n以外的任何字符,+表示1或更多。
所以:.+是"1个或多个字符"
点匹配除换行符以外的任何字符。 + 是"一个或多个"(= {1,} )
protected override string CleanDataLine(string line)
{
//the regular expression for GlobalSight log
Regex regex = new Regex("'".+'"");
Match match = regex.Match(line);
if (match.Success)
{
string matchPart = match.Value;
matchPart =
matchPart.Replace(string.Format("'"{0}'"",
Delimiter), string.Format("'"{0}'"", "*+*+"));
matchPart = matchPart.Replace(Delimiter, '_');
matchPart =
matchPart.Replace(string.Format("'"{0}'"", "*+*+"),
string.Format("'"{0}'"", Delimiter));
line = line.Replace(match.Value, matchPart);
}
return line;
}
line
只是一些文本,可以是Hello World
,或者其他任何东西。
new Regex("'".+'"")
'"
是一个转义引号,这意味着它实际上是在寻找一个以双引号开头的字符串。.+
表示查找一次或多次不包括换行字符的任何字符。
如果匹配,那么他会尝试通过抓取值来找出匹配的部分。
然后它就变成了一个正常的搜索并替换匹配的字符串