下返回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