c# - 为什么 .* 无法匹配此正则表达式中的整个(其余)字符串?

标签 c# regex

我的正则表达式遇到了问题,我正在使用正则表达式从下面的字符串中获取数据:

 "# 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/

相关文章:

c# - 无法注册时间触发的后台任务

Python - 无法弄清楚为什么正则表达式在这些代码中起作用和不起作用?

c# - 用于在字符串中查找 URL 的正则表达式

python - Python中如何在连续大写字母的首字母前添加空格?

c# - 变量 'x' 已声明但从未使用错误

c# - 数组的ReaderWriterLock

python - 如何在 python 中使用 '\Q' 和 '\E' 正则表达式符号?

python - UnicodeDecodeError,python中Snowball stemming算法的ascii处理

c# - 客户报告定义 (.rdlc) 文本框垂直对齐文本

c# - 保护 foreach 循环免受 null 影响的更智能方法