检查Python中的驼峰案例

Dex*_*ter 5 python regex camelcasing

我想检查字符串是否是驼峰情况(布尔值).我倾向于使用正则表达式,但任何其他优雅的解决方案都可行.我写了一个简单的正则表达式

(?:[A-Z])(?:[a-z])+(?:[A-Z])(?:[a-z])+
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?或者我错过了什么?

编辑

我想在格式的文本文档集合中捕获名称

McDowell
O'Connor
T.Kasting
Run Code Online (Sandbox Code Playgroud)

EDIT2

我根据评论中的建议修改了我的正则表达式

(?:[A-Z])(?:\S?)+(?:[A-Z])(?:[a-z])+
Run Code Online (Sandbox Code Playgroud)

Wil*_*ord 19

您可以检查字符串是否包含大写和小写.

def is_camel_case(s):
    return s != s.lower() and s != s.upper() and "_" not in s


tests = [
    "camel",
    "camelCase",
    "CamelCase",
    "CAMELCASE",
    "camelcase",
    "Camelcase",
    "Case",
    "camel_case",
]

for test in tests:
    print(test, is_camel_case(test))
Run Code Online (Sandbox Code Playgroud)

输出:python camel.py

camel False
camelCase True
CamelCase True
CAMELCASE False
camelcase False
Camelcase True
Case True
camel_case False
Run Code Online (Sandbox Code Playgroud)

  • 当然这行不通吗?CAMELcase无效,将返回true。 (2认同)
  • 这取决于您是否允许使用首字母缩略词。例如“DecodeRGB”或“DecodeRgb” (2认同)
  • 为什么这是公认的答案?这是不正确的 (2认同)