下返回trueC#System.RegEx匹配LF时,它不应该
Regex.IsMatch("FooBar\n", "^([A-Z]([a-z][A-Z]?)+)$");
也是如此
Regex.IsMatch("FooBar\n", "^[A-Z]([a-z][A-Z]?)+$");
正则表达式是单线模式在默认情况下,所以$不应该匹配\ n。 \ n不是允许的字符。
这是为了匹配单个ASCII PascalCaseWord(是的,它会匹配尾盖)
不能与RegexOptions.Multiline的任何组合的工作| RegexOptions.Singleline
我在做什么错?
在Windows上一个新行\ r \ N,没有的\ n。 – Gusman
是的,但.NET的RegEx实现与它匹配。出于某种奇怪的原因,查看文档。 – CodeScrubber
是的,你说得对,它将\ n视为换行符,所以正则表达式仅检查“FooBar”,这就是匹配的原因。不知道为什么它将\ n视为新行,可能会添加与其他操作系统的兼容性... – Gusman