Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用正则表达式强制执行单行?_C#_Regex_String_Multiline - Fatal编程技术网

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结合使用来驱动多行或单行标准。我被这些名字误导了。