c# - 此正则表达式中单引号的用途是什么?

标签 c# .net regex string-literals

我继承了一些带有以下正则表达式的 C# 代码

Regex(@"^[a-zA-Z''-'\s]{1,40}$")

除了单引号的作用,我理解这个字符串。我到处搜索但似乎找不到解释。有什么想法吗?

最佳答案

据我所知,这个表达式是多余的。

它匹配 a-zA-Z,或 ' 字符,或 ' 之间的任何内容'(当然只是 ' 字符,或任何空格。

我已经使用 RegexPal 对此进行了测试它似乎不匹配除这些字符之外的任何内容。也许序列是由代码生成的,或者它在早期版本中用于匹配更广泛的字符?

更新:根据您的评论(匹配名称),我将继续猜测作者认为他转义一个连字符在引号中,并且不是最出色的软件测试员。他们的意思可能是:

Regex(@"^[a-zA-Z'\-\s]{1,40}$") //Escaped the hyphen

也可以写成:

Regex(@"^[a-zA-Z'\s-]{1,40}$") //Put the hyphen at the end where it's not ambiguous

关于c# - 此正则表达式中单引号的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854327/

相关文章:

c# - 在 javascript 中访问 ASP HiddenField

c# - PropertyChangedEventHandler 为空

android - 带正则表达式的过滤器适配器

regex - MacOSX 10.9.5 上的 Sed 错误 "\1 not defined in the RE"

java - 正则表达式 Java 非字母数字字符匹配

c# - 如何将MultiMap .Net转发到Java?

c# - 在可变长度字符串的末尾添加固定数量的空格

c# - 无法从回历日期转换为公历日期 (c#)

c# - PLINQ性能问题

c# - 对实例的序列化和反序列化使用react