);那也是Regex.IsMatch("FooBarn","^[AZ]([az][AZ]?)+$");RegEx默认处于SingleLine模式,因此$不应与n个匹配项一起使用。n不是允许的字符。这是用于匹配单个ASCIIPascalCaseWord(是的,它将匹配尾随的Cap)'tworkforanycombinationofRegexOptions.Multiline|RegexOptions.Singleline我做错了什么?在.NET正则表达式中,$anchor(如PCRE、Python、PCRE、Perl,但不是JavaScript)匹配行尾或字符串中最后一行("n")字符之前的位置。请参阅此文档:$匹配必须出现在字符串或行的末尾,或者在字符串或行末尾的n之前。请参阅字符串结尾或Line以获取更多信息。在.NET正则表达式中没有修饰符可以重新定义它(在PCRE中,您可以使用DPCRE_DOLLAR_ENDONLY修饰符)。您必须找到z锚点:它只匹配字符串的最后一部分:z匹配只能出现在字符串的末尾。有关更多信息,请参见仅字符串结尾。C#中的一个简短测试:Console.WriteLine(Regex.IsMatch("FooBarn",@"^[AZ]([az][AZ]?)+$"));//=>TrueConsole.WriteLine(Regex.IsMatch("FooBarn",@"^[AZ]([az][AZ]?)+z"));//=>False来自维基百科:$匹配字符串结尾或字符串结尾字符之前的换行符。在基于行的工具中,它匹配任何行的结尾。所以你问的是在字符串开头之后是否有一个大写字母,后面跟着任意次数(零个或一个字母),然后是字符串的结尾,或者它在换行符之前的位置。这一切似乎都是真的。是的,关于什么被认为是换行符以及$如何工作或应该正确工作的不同文档来源之间似乎存在一些不匹配。它总是让人想起智慧:有时一个人遇到问题,他认为他会使用正则表达式来解决它。现在这个人有两个问题。以上就是C#学习教程:C#System.RegEx匹配LF时不应该分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
