【发布时间】:2014-11-19 16:10:29
【问题描述】:
我需要一个Regex 对象来拒绝任何跨越多行的字符串。
我希望这能成功:
"This is my string"
这失败了:
"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
我一直在阅读documentation on MSDN 并假设以下内容应该有效:
- 正则表达式模式:
"^.+" -
Regex 对象用这种模式初始化,没有任何选项(没有
RegexOptions.Singleline或RegexOptions.Multiline)。
当使用多行字符串进行测试时,Regex.IsMatch 方法总是返回 true。 我相信这是因为当至少有一部分字符串与模式匹配时,IsMatch 将返回 true。
就我而言,新行之前的任何内容都会导致匹配。这将失败的唯一方法是如果字符串只有换行符而没有其他字符。
是否有一种 Regex 验证方法将字符串视为一个整体,而不是将其拆分为匹配的子字符串?我怀疑我可能需要一个更复杂的字符串模式来实现我的目标。
【问题讨论】: