我的正则表达式遇到了问题,我正在使用正则表达式从下面的字符串中获取数据:
"# DO NOT EDIT THIS MAIL BY HAND #\r\n\r\n[Feedback]:hallo\r\n\r\n# DO NOT EDIT THIS MAIL BY HAND #\r\n\r\n"
到目前为止,我已经可以使用它了:
String sFeedback = Regex.Match(Message, @"\[Feedback\]\:(?<string>.*?)\r\n\r\t\n# DO NOT EDIT THIS MAIL BY HAND #").Groups[1].Value;
除非 header 发生更改,否则此方法有效,因此我希望正则表达式从 [feedback]:
读取到字符串的末尾。 (符号、ascii、一切......)
我尝试过:\[Feedback]:(?<string>.*?)$
上面的正则表达式确实可以在一些在线正则表达式生成器中工作,但在我的 C# 代码中它不起作用并返回一个空字符串。怎么了?
最佳答案
问题是 .
不匹配换行符,除非您使用 RegexOptions.Singleline
编译正则表达式或使用 (?s)
内联它时:
(?s)\[Feedback\]:(.*)$
关于c# - 为什么 .* 无法匹配此正则表达式中的整个(其余)字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12580163/