我需要一个Regex对象来拒绝任何遍布多行的字符串。
我希望这成功:
"This is my string"
这就失败了:
"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
我一直在阅读documentation on MSDN并认为以下内容应该有效:
"^.+"
RegexOptions.Singleline
或RegexOptions.Multiline
)。使用多个线串进行测试时, Regex.IsMatch 方法始终返回true。 我相信这是因为当至少有一部分字符串与模式匹配时, IsMatch 将返回true。
在我的情况下,新行之前的任何内容都会导致匹配。这将失败的唯一方法是字符串只有换行符而没有其他字符。
是否有 Regex 验证方法将字符串视为一个整体,而不是在匹配的子字符串中将其拆分?我怀疑我可能需要一个更复杂的字符串模式来实现我的目标。
答案 0 :(得分:4)
您可以使用此正则表达式仅匹配单行:
^[^\r\n]+$
您无需在此正则表达式中使用RegexOptions.Multiline
。