如何使用正则表达式识别特定行?c#
我对regex还不熟悉,但还是不太懂 我需要识别一行,但由于某些原因,在使用正则表达式时,我总是得到false 用于标识结构的行:屏幕消息:完整路径\FILENAME.PNG 例如:如何使用正则表达式识别特定行?c#,c#,.net,regex,string,text,C#,.net,Regex,String,Text,我对regex还不熟悉,但还是不太懂 我需要识别一行,但由于某些原因,在使用正则表达式时,我总是得到false 用于标识结构的行:屏幕消息:完整路径\FILENAME.PNG 例如: Screen Message: c:\program files (x86)\regression machine work\reports\156487/04-37-71_47-38-141\Screenmessages\63445646476476767574.FAR.png 尝试查找前缀(“屏幕消息:”)和
Screen Message: c:\program files (x86)\regression machine work\reports\156487/04-37-71_47-38-141\Screenmessages\63445646476476767574.FAR.png
尝试查找前缀(“屏幕消息:”)和后缀(“.FAR.png”)
但却无法让它发挥作用
Regex.Match(Text, $"(^Screen Message: )+[0-9]+[a-z]\+{.FAR.png}$", RegexOptions.IgnoreCase).Success;
任何帮助都将不胜感激
谢谢您可以使用类似的正则表达式
屏幕消息:\s*(?.*)\(?.\.FAR\.png)
看。详情:
-字符串屏幕消息:
-零个或多个空格字符\s*
-分组“文件夹”:尽可能多的零个或多个字符(?*)
-a\\
字符\
-将“文件名”分组:尽可能多的零个或多个字符,然后是一个(?.*\.FAR\.png)
子字符串.FAR.png
var pattern=@“屏幕消息:\s*(?*)\\(?*\.FAR\.png)”;
var input=@“屏幕消息:c:\program files(x86)\Returnal machine work\reports\156487/04-37-71\U 47-38-141\Screen消息\634456464767574.FAR.png”;
var match=Regex.match(输入,模式);
如果(匹配成功)
{
WriteLine(“文件夹:'{0}',文件名:'{1}'”,
match.Groups[“folder”].Value,match.Groups[“filename”].Value);
}
我不确定您到底需要检查什么。您的解释和代码不够清楚,我有几个问题,例如,为什么要在正则表达式中转义+
(^Screen Message:)+(.+)\/([^\/]+)(\w+\.FAR\.png)
您只想比赛成功吗?不需要任何子字符串?。你有否定匹配的例子吗?与此类似但不应匹配的行?@mayali很高兴它对您有效。请考虑通过点击来接受答案。✓ 如果我的回答对你有帮助(请参见),请点击左边(请参见)并向上投票(请参见)。