我想知道有一个非常严格的规则如何影响 c# 中正则表达式的性能。
例如,如果我希望一个字符串(我将从某处读取)仅包含 [a-zA-z0-9],但同时我确信,给我字符串的人将始终返回一个字符串有这个规律。所以,在这种情况下,将只使用“。” 而不是 a-zA-Z0-9 对性能有影响吗?
这两者的工作方式有何不同?
我想知道有一个非常严格的规则如何影响 c# 中正则表达式的性能。
例如,如果我希望一个字符串(我将从某处读取)仅包含 [a-zA-z0-9],但同时我确信,给我字符串的人将始终返回一个字符串有这个规律。所以,在这种情况下,将只使用“。” 而不是 a-zA-Z0-9 对性能有影响吗?
这两者的工作方式有何不同?
如果我期望一个字符串(我将从某处读取)仅包含 [a-zA-z0-9],但同时我确信,给我字符串的人将始终返回一个具有这个规则。
你不能确定这一点。你知道假设是什么意思。你的代码可以被其他人使用,你的程序可以被其他人输入。编写防御代码。总是。没有理由。
所以,在这种情况下,将只使用“。” 而不是 a-zA-Z0-9 对性能有影响吗?
忽略上述声明,如果您确定输入将符合您的期望,则无需验证它们是否符合。您必须有其他约束,例如“字符串的长度为 X 或更大”,您可以简单地通过检查string.Length
和String.INOWS()
.