我需要一个正则表达式对象,它将拒绝跨多行传播的任何字符串。
我希望这件事能成功:
"This is my string"
这是失败的:
"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
我一直在关于MSDN的文档上阅读,并假定以下内容应该有效:
"^.+"
RegexOptions.Singleline
或RegexOptions.Multiline
)。使用多行字符串进行测试时,Regex.IsMatch方法总是返回true。我相信这是因为当字符串中至少有一部分与模式匹配时,IsMatch将返回true。
在我的例子中,新行之前的任何内容都会导致匹配。这将失败的唯一方法是,如果字符串只有换行,而没有其他字符。
是否有Regex验证方法将字符串作为一个整体来考虑,而不是在匹配子字符串中将其分割?我怀疑我可能需要一个更复杂的字符串模式来实现我的目标。
发布于 2014-11-19 08:14:48
您可以使用此正则表达式只匹配一行:
^[^\r\n]+$
而且您不需要在这个正则表达式中使用RegexOptions.Multiline
。
https://stackoverflow.com/questions/27021546
复制