Oneliner 检测驼峰变量

ziu*_*ziu 2 grep bash sed

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

camelCasehere
or
camelCaseHere
or
camel_caseHere
Run Code Online (Sandbox Code Playgroud)

Ulr*_*gel 6

怎么样

/bin/grep -E '[a-z]{1,}[A-Z]'
Run Code Online (Sandbox Code Playgroud)

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

如果您还想匹配类似而不匹配的内容camel_Case,则可以使用: Nocamelcase

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

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

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
Run Code Online (Sandbox Code Playgroud)