如何使用正则表达式强制执行单行?

Lou*_*uis 3 c# regex string multiline

我需要一个Regex对象来拒绝跨多行传播的任何字符串。

我希望这能成功:

"This is my string"
Run Code Online (Sandbox Code Playgroud)

这会失败:

"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
Run Code Online (Sandbox Code Playgroud)

我一直在阅读MSDN 上的文档并假设以下内容应该有效:

  • 正则表达式模式:"^.+"
  • 使用此模式初始化的正则表达式RegexOptions.Singleline对象,没有任何选项(no或RegexOptions.Multiline)。

使用多个行字符串进行测试时,Regex.IsMatch方法始终返回 true。我相信这是因为当字符串中至少有一部分与模式匹配时,IsMatch将返回 true。

就我而言,新行之前的任何内容都会导致匹配。唯一失败的方法是字符串只有换行符而没有其他字符。

是否有正则表达式验证方法将字符串视为一个整体,而不是将其拆分为匹配的子字符串?我怀疑我可能需要更复杂的字符串模式来实现我的目标。