C# 如何使用正则表达式强制执行单行?
我需要一个对象,它将拒绝任何跨越多行的字符串 我希望这能成功:C# 如何使用正则表达式强制执行单行?,c#,regex,string,multiline,C#,Regex,String,Multiline,我需要一个对象,它将拒绝任何跨越多行的字符串 我希望这能成功: "This is my string" 这是一个失败的例子: "This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines." 我一直在阅读有关的文章,并假设以下内容应该有效: 正则表达式模式:^+ 使用此模式初始化的Regex对象,没有任何选项没有RegexOptions.Si
"This is my string"
这是一个失败的例子:
"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."
我一直在阅读有关的文章,并假设以下内容应该有效:
正则表达式模式:^+
使用此模式初始化的Regex对象,没有任何选项没有RegexOptions.Singleline或RegexOptions.Multiline。
使用多行字符串进行测试时,Regex.IsMatch方法始终返回true。
我相信这是因为当字符串中至少有一部分与模式匹配时,IsMatch将返回true
在我的情况下,在新行之前的任何内容都会导致匹配。如果字符串只有换行符而没有其他字符,则此操作将失败
有一个正则表达式验证方法,它将把字符串看作一个整体,而不是把它分解成匹配的子字符串?我想我可能需要一个更复杂的字符串模式来实现我的目标。
您可以使用此正则表达式只匹配一行:^[^\r\n]+$
并且您不需要使用RegexOptions。与此regex多行。您可以使用此regex仅匹配单行:
^[^\r\n]+$
您不需要使用RegexOptions。使用此regex进行多行。谢谢anubhava。它按预期工作。我希望一个接受所有模式可以与RegexOptions结合使用来驱动多行或单行标准。我被名字误导了。谢谢阿努巴瓦。它按预期工作。我希望一个接受所有模式可以与RegexOptions结合使用来驱动多行或单行标准。我被这些名字误导了。