一行代码检测驼峰变量

一行代码检测驼峰变量

我想插入一些样式测试作为 git hooks,以便遵守精确的样式规则。我怎样才能找到一个检测并打印任意驼峰变量的 oneliner,如下所示:

camelCasehere
or
camelCaseHere
or
camel_caseHere

答案1

怎么样

/bin/grep -E '[a-z]{1,}[A-Z]'

这要求至少有一个小写字符位于大写字符之前。这将匹配您的所有测试用例。

如果你还想匹配类似camel_Case不是 Nocamelcase您可以使用:

/bin/grep -E '([a-z]{1,}[A-Z])|(^.+[A-Z]{1,}[a-z])' 

要自己测试它,您可以使用类似以下内容:

cat <<EOF | /bin/grep -E '([a-z]{1,}[A-Z])|(^.+[A-Z]{1,}[a-z])'
NONMATCH                                                               
nonmatch
shouldMatch1
should_Match2
should_mAtch3
Non_match    
Non_MATCH
Should_mAtch4
Should_Match5
EOF

答案2

以防万一这对某人有用,这里是一个在代码中使用 Snake Case 检测 PHP 变量的单行代码(假设是 GNU grep):

grep -r --include='*.php' -E '\$[a-zA-Z]+_[a-zA-Z]' .

相关内容