正则表达式在c#中是如何工作的?
我想知道一个非常严格的规则是如何影响c#中正则表达式的性能的 e、 g如果我期望一个字符串(我将从某处读取)只包含[a-zA-z0-9],但同时我确信,给我字符串的那个将始终返回一个具有此规则的字符串。因此,在这种情况下,使用“.”而不是a-zA-Z0-9是否会对性能产生任何影响 这两者的工作方式有什么不同 如果我期望一个字符串(我将从某处读取)只包含[a-zA-z0-9],但同时我确信,给我该字符串的那个将始终返回一个具有此规则的字符串 你不能肯定这一点。你知道这对我意味着什么。你的代码可以被别人使用,你的程序可以被别人输入。编写防御代码。总是。没有借口 因此,在这种情况下,使用“.”而不是a-zA-Z0-9是否会对性能产生任何影响正则表达式在c#中是如何工作的?,c#,regex,performance,C#,Regex,Performance,我想知道一个非常严格的规则是如何影响c#中正则表达式的性能的 e、 g如果我期望一个字符串(我将从某处读取)只包含[a-zA-z0-9],但同时我确信,给我字符串的那个将始终返回一个具有此规则的字符串。因此,在这种情况下,使用“.”而不是a-zA-Z0-9是否会对性能产生任何影响 这两者的工作方式有什么不同 如果我期望一个字符串(我将从某处读取)只包含[a-zA-z0-9],但同时我确信,给我该字符串的那个将始终返回一个具有此规则的字符串 你不能肯定这一点。你知道这对我意味着什么。你的代码可以被
忽略上面的陈述,如果你确信输入符合你的期望,你就不必验证它们是否符合你的期望。您必须有其他约束,例如“字符串的长度为X或更大”,您只需检查
string.length
和类似的方法即可。如果您想知道这两种方法中哪一种更快,请尝试两种方法并测量结果,然后您就会知道。结果如何?赛马?:)@EricLippert-下一个问题:在C#中,如何衡量正则表达式的性能?请查看此链接。有一个很好的例子将IndexOf与regex进行了比较。@chaosption:Performance总是在影响用户的上下文中进行的。如果它不影响用户,那么你为什么会在意呢?因此,一种方法是找到一个用户,向他们展示两种方式的性能,并询问他们在一种情况下性能是否可以接受,而在另一种情况下性能是否可以接受。使用用户作为您的测量设备,因为他们的满意度是您所追求的。