我需要一个 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 验证方法将字符串视为一个整体,而不是将其拆分为匹配的子字符串?我怀疑我可能需要更复杂的字符串模式来实现我的目标。
请您参考如下方法:
您可以使用此正则表达式来匹配单行:
^[^\r\n]+$
并且您不需要对这个正则表达式使用 RegexOptions.Multiline。
