![一行代码检测驼峰变量](https://linux22.com/image/24649/%E4%B8%80%E8%A1%8C%E4%BB%A3%E7%A0%81%E6%A3%80%E6%B5%8B%E9%A9%BC%E5%B3%B0%E5%8F%98%E9%87%8F.png)
我想插入一些样式测试作为 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]' .