【发布时间】:2012-04-23 17:45:00
【问题描述】:
我正在将 this regular expression C# 字符串重构为一个常量,但我不确定如何最好地命名它(我的正则表达式 fu 很弱)。
@"^(?!\s\s)"
问号不是表示可选的东西吗?什么问题说是可选的?
我发现,作为一个开发者,你必须清楚地理解一些东西才能正确地命名它(也:Naming is Hard),所以我想清楚地理解这一点,然后给它一个正确的名称。
这个正则表达式的名称是什么?
我正在考虑LinesThatDoNotStartWithTwoSpaces 或DoesNotStartWithTwoSpaces。
【问题讨论】:
-
我一直遵循这条规则:不懂的东西不要重构。
-
+1 对变量名给予了如此多的关注......很多爱人..很多爱!
-
我不确定正则表达式应该做什么,但 '\s' 指的是空白字符而不是空格。正如您也发现的那样,也不清楚问号在做什么。上面上下文中的“^”字符表示“在开头”而不是“NOT”。
-
是的,其中包括换行符、回车符和其他“垂直”空白字符,这肯定不是您想要的。要尽可能清楚地指定(对人类读者以及正则表达式编译器)您的意思只是空格字符,您可以使用
^(?!\x20\x20)之类的东西。
标签: c# regex naming-conventions constants